视图层 views.py
FBV与CBV
FBV:
def index(request):
return HttpResponse('index')
CBV
url(r'^login/',views.MyLogin.as_view())
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'form.html')
def post(self,request):
return HttpResponse('post方法')
CBV添加装饰器
from django.views import View
from django.utils.decorators import method_decorator
CBV中django不建议你直接给类的方法加装饰器
class MyLogin(View):
@method_decorator(login_auth)
def dispatch(self, request, *args, **kwargs):
return super().dispatch(request,*args,**kwargs)
def get(self,request):
return HttpResponse("get请求")
def post(self,request):
return HttpResponse('post请求')
请求:
request对象方法
request.method
request.POST
request.POST.get()
request.POST.getlist()
request.GET
request.GET.get()
request.GET.getlist()
get请求 携带的数据 大小限制 大概4KB
post请求 没有大小限制
request.FILES
request.body
request.path
request.path_info
request.get_full_path() 能过获取完整的url及问号后面的参数
print(request.path)
print(request.path_info)
print(request.get_full_path())
响应:
三板斧
视图函数必须要返回一个HttpResponse对象
render简单内部原理
from django.template import Template,Context
res = Template('<h1>{{ user }}</h1>')
con = Context({'user':{'username':'jason','password':123}})
ret = res.render(con)
print(ret)
return HttpResponse(ret)
HttpResponse
return HttpResponse('ok')
render
return render(request,'home.html',locals())
redirect
重定向
return redirect('https://www.mzitu.com/')
return redirect('/home/')
JsonResponse对象
import json
from django.http import JsonResponse
def ab_json(request):
json_str = json.dumps(user_dict,ensure_ascii=False)
return HttpResponse(json_str)
return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
return JsonResponse(l,safe=False)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现