在Django框架中,视图类(Class-based views,简称CBVs)提供了一个面向对象的方式来定义视图。这种方式可以让你通过创建类来组织视图逻辑,而不是使用基于函数的视图(Function-based views,简称FBVs)。CBVs带来了可重用性和模块化等优势,尤其是在处理标准的CRUD操作时。
1,创建应用
python manage.py startapp app2
2,创建模版文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST">
{% csrf_token %}
<p>用户名</p>
<input type="text" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
3,配置模版路径
Test/Test/settings.py
import os
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
4,注册应用
Test/Test/settings.py
5,添加视图函数
Test/app2/views.py
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
from django.views import View
class MyView(View):
def get(self, request):
# 处理GET请求的逻辑
return HttpResponse('get, Hello, World!')
def post(self, request):
# 处理POST请求的逻辑
print(request.method)
print(request.POST.get('username'))
return HttpResponse('post, Hello, World!')
6,添加路由地址
from django.urls import path
from app2.views import MyView
urlpatterns = [
path('MyView', MyView.as_view(), name='MyView'),
]
7,测试接口
Test/Test/settings.py
ps:这个中间件是为了防止跨站请求伪造的,平时用网页表单请求时,post提交是没有问题的,但是用api调用时就会被禁止,为了能使用接口调用post请求,需要注释掉。
import requests
res_get = requests.get(url='http://127.0.0.1:8000/app2/MyView')
print(res_get.text)
res_post = requests.post(url='http://127.0.0.1:8000/app2/MyView' , data={'username':'admin'})
print(res_post.text)
分别成功请求get,post接口,获取接口请求的admin值
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » Django 视图类
发表评论 取消回复