富文本编辑器配置上传图片 发表博客
文件上传表单格式(views.py)
表单样式 HTML
富文本文件上传(views.py)
HTML里面代码来自ueditor文件,找寻需要的一些js文件
跳转页面中的样式清除:然后在url.py里配置路径
富文本中文件上传需要配置相应的配置:
现在ueditor文件里找到config.json这个文件,复制存放到static里下层位置。
在将uecontroller.py这个Python文件存放至blog这个APP的目录里:
因为这两个文件里的一些配置并不适配这个项目,所以我们上传后需要在里面将一些参数进行更改:
首先在uecontroller.py第六行里找到该路径将存放config.json文件的路径更改正确:
然后在同文件的20行将其对应的项目名称进行修正:
[1:]这个是截取路径的方法,修改里面
到了最底层的
handler这个方法时,需要在urls.py里进行路径配置,才可以使用这个方法:
需要导入:
from .import uecontroller
然后config.json这个文件里只需要将图片访问路径修改正确就可以了。
发表博客:
思路:再建一个APP,注册,登录是一个,创建发表是一个,有标题,内容,还有用户名(通过创建外键,)
class Blog(models.Model): title=models.CharField(max_length=50,null=False,unique=True) content=models.CharField(max_length=500,null=False) bloguser=models.ForeignKey('BlogUser',on_delete=None)#创建外键,如果级联删除,on_delete=models.CASCADE,删除此项连同主表一起删 createtime=models.DateTimeField(default=datetime.now())#默认值 class Meta: db_table='blog'
创建app,在命令窗口输入startAPP +名字 ;
创建项目要分模块:页面、APP
页面如果配置好了路径,按住Ctrl+单词 就能调到对应方法
把内容里的图片和文字都存到内容
!!!!!使用断点调试:点出红圆,点击运行旁边,返回页面运行,出现错误的地方时候朋友pycharm会
闪,点击向下箭头,一步一步执行,看哪里出现问题。
思路:
配置大urls:
path('blogmanager/',include('blogmanager.urls',namespace='manager'))
写后台:
from django.shortcuts import render,redirect,reverse from .models import Blog#从当前models导入 from blog2.models import BlogUser from datetime import datetime # Create your views here. def addblog(request): if request.session.get('username') is None: return render(request, 'login.html') else: if request.method=='GET': return render(request,'manager/add.html') else: #接收标题、内容 title=request.POST.get('title') content=request.POST.get('content') print(content) blog=Blog() blog.title=title blog.content=content #从session中获取用户名 username=request.session.get('username')#根据session的用户名,查找id,根据id从而找到对象 blog.bloguser=BlogUser.objects.filter(userName=username).first()#类属性 filter 返回的是queryset集合,所以必须加first变成对象 blog.createtime=datetime.now() blog.save() print('保存成功') return redirect(reverse('manager:show')) def show(request): #从数据库查询所有博客纪录 bloglist=Blog.objects.all().order_by('-createtime')#倒叙加负号 return render(request,'manager/show.html',{'bloglist':bloglist}) def detail(request,id): blog=Blog.objects.get(pk=id) return render(request,'manager/detail.html',{'blog':blog})
配置urls:
from django.contrib import admin from django.urls import path from . import views app_name='manager' urlpatterns = [ path('addblog',views.addblog), path('show',views.show,name='show'), path('detail/<int:id>',views.detail) ]