django_cvb和fvb
cvb 即class view 和funtion view 两种方式 发送get和post请求
前后端不分离的写法,定义一个html(form.html),在view中写逻辑(cvb&fvb)
备注:需要注意csrf的问题,如果多次提交重复的数据会报403,解决办法两种
1.在settings.py-MIDDLEWARE-将csrf(第四行)注释掉
2.在form.html中写{% csrf_token%}
form.html的代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/add_article/" method="post">
{% csrf_token %}
title:<input type="text" name="title"> desc:<input type="text" name="desc"> content:<input type="text" name="content"> category:<select name="category"> {% for c in categorys %} <option value="{{ c.id }}">{{ c.name }}</option> {% endfor %} </select> <input type="submit" value="提交"> </form> </body> </html>
views.py中的代码
#function fvb方式 def add_article(request): if request.method == 'GET': categorys = Category.objects.all() return render(request,'form.html',locals()) else: title = request.POST.get('title') desc = request.POST.get('desc') content = request.POST.get('content') category = request.POST.get('category') article = Article(title=title,desc=desc,category_id=category,content=content) article.save() return HttpResponseRedirect('/blog')#重定向 #class cvb方式 class ArticleView(View): def get(self,request): categorys = Category.objects.all() return render(request, 'form.html', locals()) def post(self,request): title = request.POST.get('title') desc = request.POST.get('desc') content = request.POST.get('content') category = request.POST.get('category') article = Article(title=title, desc=desc, category_id=category, content=content) article.save() return HttpResponseRedirect('/blog') # 重定向
urls.py
from django.contrib import admin from django.urls import path from user.views import index,test,blog,detail,add_article,ArticleView urlpatterns = [ path('admin/', admin.site.urls), path('index/', index),#添加访问的url,index/可自定义,index是views.py中的方法 path('test/', test), path('blog/', blog), # path('category/<int:id>', category), path('detail/', detail), # path('add_article/', add_article),#fvb方式 path('add_article/', ArticleView.as_view()),#cvb方式 ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理