前后端分离:
html文件通过浏览器打开,前端会显示localhost+端口,django后台是127.0.0.1+8000,ip和端口只要有一个匹配不上,浏览器就不允许访问,报跨域问题,解决跨域问题要pip install django-cors-headers
form表单发请求和js发请求的区别是form表单会刷新页面,js不需要刷新页面,有时没有必要刷新页面
在templates目录下新建一个html文件,form.html,新增代码如下图:
在views.py里新增代码如下图:
在urls.py里导入add_article,再新增path(‘add_article/‘, add_article),,在浏览器里输入http://127.0.0.1:8000/add_article/,点击回车,弹出如下图:
CSRF是为了防止重复提交,为了解决这一问题,第一种方法是在settings.py里注释掉MIDDLEWARE->‘django.middleware.csrf.CsrfViewMiddleware‘,,另一种方法是在form.html里增加如下代码:
首先访问http://127.0.0.1:8000/add_article/,获取文本框页面是get请求,获取分类导航,然后把form.html的内容渲染到页面,接下来在各个input框里输入内容,点击提交按钮,是post请求,提交成功后可以去article表里看插入的文章成功了,然后重定向到index页面,这个是fbv的方式,f是function,v是views,接下来用cvb的方式,c是class,v是views,views.py修改代码如下图:
在urls.py里新增的代码如下图:
cvb比fvb更好用
原文:https://www.cnblogs.com/laosun0204/p/12249210.html