1.kindeditor编辑器
2.直接利用form表单发送post请求
3.文章标题 文章内容 文章简介
1.利用bs4模块
from bs4 import Beautifulsoup
res = Beautifulsoup(content,'parser.html')
res = res.find_all()
for tag in res:
print(tag.name)
if tag.name == 'script':
tag.decompose()
desc = res.text[0:150]
models.Article.objects.create(...content=str(res))
使用
html代码
{% block content %}
<h3>添加文章</h3>
<hr>
<form action="" method="post">
{% csrf_token %}
<p>标题</p>
<input type="text" name="title" id="id_title" class="form-control">
<p>内容(kindeditor编辑器,支持拖放/粘贴上传图片)</p>
<p>
<textarea name="content" id="id_content" cols="30" rows="10"></textarea>
</p>
<input type="submit" value="发布" class="btn btn-danger">
</form>
<script charset="utf-8" src="/static/kindeditor/kindeditor-all-min.js"></script>
<script>
KindEditor.ready(function (K) {
window.editor = K.create('#id_content', {
'100%',
height:'450px',
resizeType:0, //控制用户能不能调大小
// 控制文件上传的位置
uploadJson : '/upload_img/',
extraFileUploadParams : {
'csrfmiddlewaretoken':'{{ csrf_token }}'
}
});
});
</script>
{% endblock %}
控制能否上传图片wiews.py代码
from BBS import settings
import os
def upload_img(request):
back_dic = {'error':''}
if request.method == 'POST':
# print(request.FILES)
img_obj = request.FILES.get('imgFile')
# 规定编辑器上传的图片全部放到media文件夹里面的upload_img文件夹下
# 1.将文件存储到media文件夹下
path = os.path.join(settings.BASE_DIR,'media','upload_img')
if not os.path.exists(path):
os.mkdir(path)
file_path = os.path.join(path,img_obj.name)
with open(file_path,'wb') as f:
for line in img_obj:
f.write(line)
# 2.将文件路径返回给前端
back_dic['error'] = 0
back_dic['url'] = '/media/upload_img/%s'%img_obj.name
"""
//成功时
{
"error" : 0,
"url" : "http://www.example.com/path/to/file.ext"
}
//失败时
{
"error" : 1,
"message" : "错误信息"
}
"""
return JsonResponse(back_dic)