django23:BS4/kindeditor上传图片

BS4

Beautiful Soup,Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。

安装

pip3 install beautifulsoup4

使用

from bs4 import BeautifulSoup#html_doc为网页内容
soup = BeautifulSoup(html_doc, 'html.parser')tags=soup.find_all()
#获取所有标签
for tag in tags:print(tag.name)#针对 scriptif tag.name='script'#删除标签tag.decompose()#过滤后的soup
content=str(soup)# 截取文本内容前150字符 .text表示文本
desc=soup.text[0:150]

note:

其实还是需要解析器的,但是这里用自带的。如下:

pip install html5lib

解析器对比:

官方文档

编辑器kindeditor

官方查看资料:http://kindeditor.net/docs/option.html#extrafileuploadparams

编辑器上传图片

1.网页

 <script charset="utf-8" src="/static/kindeditor/kindeditor.js"></script><script>KindEditor.ready(function (K) {window.editor = K.create('#id_content',{width : '100%',height : '700px',resizeType: '1',uploadJson : '/upload_image/',extraFileUploadParams : {'csrfmiddlewaretoken':'{{ csrf_token }}'}});});</script>
uploadJson :设置图片url,图片往url发送,所以增加路由url处理
extraFileUploadParams : 额外参数,这里是post发送,所以需要发送校验。

2.url.py

    # 编辑器上传图片借口re_path(r'^upload_image/',views.upload_image),

3.视图层views.py

# 上传图片
import os
from BBS_Virtualenvs import settings
def upload_image(request):"""//成功时{"error" : 0,"url" : "http://www.example.com/path/to/file.ext"}//失败时{"error" : 1,"message" : "错误信息"}:param request::return:"""back_dic = {'error': 0, }  # 先定义返回给编辑器的数据形式# 用户上传图片 也算是静态资源 应该放在防盗media文件夹下if request.method == 'POST':# 获取用户上传图片对象print(request.FILES) #打印查看键名字 imgFilefile_obj =request.FILES.get('imgFile')# 手动拼接存储文件的路径file_dir=os.path.join(settings.BASE_DIR,'media','article_img')# 优化操作 先判断当前文件是否存在 如果不存在 自动创建if not os.path.isdir(file_dir):os.mkdir(file_dir) #创建目录 article_imgfile_path=os.path.join(file_dir,file_obj.name)with open(file_path,'wb') as f:for line in file_obj:f.write(line)# 返回文件路径名字 也需要手动拼接# 为什么不用file_path? /BBS_Virtualenvs/media 不能作为网页连接,没有暴露资源back_dic['url']='/media/article_img/%s'%file_obj.namereturn  JsonResponse(back_dic)

参考:https://www.cnblogs.com/Dominic-Ji/p/9637705.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac 防止 下载 睡眠_如何暂时防止Mac进入睡眠状态

mac 防止 下载 睡眠Let’s say you start a big download, then go to bed. When you wake up, you realize your Mac went to sleep before finishing its job. Isn’t there some way to stop this? 假设您开始进行大量下载&#xff0c;然后上床睡觉。 当您醒来时&#xff0…

mac共享单个磁盘_如何与您的所有设备共享酒店的单个Wi-Fi连接

mac共享单个磁盘Many hotels still limit you to one or two Wi-Fi devices per room–a frustrating limitation, especially when traveling with someone else. Connection restrictions can apply anywhere you have to log into a Wi-Fi network via a portal instead of …

Python FastApi:快速建立docker容器/挂载共享文件夹/导入导出

一、目的 a.快速把原有fastapi代码部署到docker&#xff0c;让docker在server运行。 b.不涉及docker深入设置。 c.使用python第三方lib少或简单。 二、步骤 ps:请提前安装docker 1.新建Dockerfile&#xff0c;放入到项目根目录 a.Dockerfile没有后缀. b.准备好requireme…

PHP-FPM 与 Nginx 的通信机制总结

PHP-FPM 介绍 CGI 协议与 FastCGI 协议 每种动态语言&#xff08; PHP,Python 等&#xff09;的代码文件需要通过对应的解析器才能被服务器识别&#xff0c;而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP 文件在服务器上的解析需要用到 PHP 解释器&#xff0c;再加上对…

Android——监听事件总结

各种监听事件 1.按钮 Button&#xff08;1&#xff09;点击监听btn_1.setOnClickListener(new View.OnClickListener() { &#xff08;2&#xff09;长按监听btn_1.setOnLongClickListener(new View.OnLongClickListener() { 2.单选框 RadioGroupradio_gp.setOnCheckedChangeLi…

ChatGPT 大智近妖,从宇宙人生到手搓光刻机,从哄女朋友到写年终总结我们聊得非常开心,反而让人越来越忧心...

都说 ChatGPT 要干掉程序员&#xff0c;清理搜索引擎&#xff0c;取代Stack Overflow&#xff0c;还能消灭人类&#xff0c;这些有些言过其实了。ChatGPT 的定位是一个人工智能助理&#xff0c;它说&#xff0c;它的主要目的是通过回答用户的问题&#xff0c;为用户提供帮助。在…

如何在Windows Defender中安排扫描

Windows Defender automatically performs background scans during your PC’s idle moments, but doesn’t include an easy way to schedule a full scan. There is a way to do it, though. Windows Defender在PC空闲时自动执行后台扫描&#xff0c;但是没有包括安排完整扫…

复习深入笔记02:魔法方法/cookie,session,token/异常

魔法方法 对象生成 1.先调用__new__方法&#xff0c;生成空对象。控制对象生成。 2.当执行“对象类名&#xff08;namelqz&#xff09;”&#xff0c;触发类的__init__()

比特熊故事汇独家 | .NET 感恩专场

点击上方蓝字关注我们&#xff08;本文阅读时间&#xff1a;15分钟)大家好&#xff01;我是爱吃、爱玩、更爱学习技术&#xff0c;IT界新晋小红人&#xff0c;开发者的好朋友——比特熊&#xff01;比特熊&#xff1a;本期故事汇是.NET专场&#xff0c;今天一次性邀请到DOTNET领…

Ubuntu Core 给物联网提供更多安全支持

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; Canonical 是 Ubuntu 的一个桌面环境&#xff0c;该公司目前在云服务业务赚到了钱。因为 Ubuntu Core 为嵌入式设备带来了 Ubuntu 18.04 长期支持(LTS)代码库。Ubuntu Core 的镜像大小为 260MB&…

semantic ui要装什么才能使用

作者&#xff1a;呆呆笨笨链接&#xff1a;https://www.zhihu.com/question/32233356/answer/196799506来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。本答案将以两种方式讲解如何从零开始使用 Semantic-UI&#xff0c;…

用户帐户控制设置_创建快捷方式以避免用户帐户控制弹出式快捷方式

用户帐户控制设置There are numerous applications which, when launched, result in a UAC (User Account Control) warning being displayed. There are reasons why this security measure is a good idea, but it can also be extremely irritating. ElevatedShortcut lets…

rest_framework01:前后端分离\规范\简单例子(查询某本书)

web 开发模式 RESTful规范 1 数据的安全保障 url链接一般都采用https协议进行传输 注&#xff1a;采用https协议&#xff0c;可以提高数据交互过程中的安全性 2 接口特征表现 用api关键字标识接口url&#xff1a; https://api.baidu.comhttps://www.baidu.com/api注&#xff…

.NET Core如何通过SSL访问MongoDB?

【.NET Core】| 总结/Edison Zhou大家好&#xff0c;我是Edison。最近有一个ASP.NET Core通过SSL证书访问MongoDB的需求&#xff0c;但是在网上发现资料很少&#xff0c;于是调查了一番&#xff0c;做了如下的笔记&#xff0c;希望对你有用。背景在实际场景中&#xff0c;开发环…

在pom.xml中配置nexus上传地址

2019独角兽企业重金招聘Python工程师标准>>> <distributionManagement> <repository> <id>thirdparty</id> <url>http://&#xff5b;nexusIP地址&#xff5d;:8081/nexus/content/repositories/thi…

网页背景平铺_在大约十秒钟内为网页创建无缝平铺背景

网页背景平铺Creating a background image for your webpage (or desktop background) isn’t challenging at all. In fact, even a newbie Photoshop user can bash one out in about ten seconds. Here’s the simplest of simple methods with surprising, great results. …

9月11日学习内容整理:正则表达式,re模块

一、正则表达式&#xff1a;正则是很大的一个知识点&#xff0c;不会仅仅是下面这些东西 1、概念&#xff1a;正则表达式就是一种对字符串匹配的规则&#xff0c;注意是只对字符串&#xff0c;正则表达式和python没啥关系&#xff0c; 2、表达式&#xff1a; &#xff08;1&…

MongoDB的安装与使用

MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库&#xff0c;NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展&#xff0c;以及大数据存储等一系列问题而产生的数据库解决方案。NoSql&#xff0c;它不能替代关系型数据库&#xff0c;只能作为关系型数据库…

linux 基准测试_如何对Linux系统进行基准测试:3个开源基准测试工具

linux 基准测试Linux’s command-line utilities can do anything, including perform benchmarks – but using a dedicated benchmarking program is a simpler and more foolproof process. These utilities allow you to perform reproducible tests across different syst…