当前位置: 首页 > news >正文

Django 视图类

在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 osTEMPLATES = [{'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 Viewclass 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 MyViewurlpatterns = [path('MyView', MyView.as_view(), name='MyView'),
]

7,测试接口

Test/Test/settings.py

ps:这个中间件是为了防止跨站请求伪造的,平时用网页表单请求时,post提交是没有问题的,但是用api调用时就会被禁止,为了能使用接口调用post请求,需要注释掉。

import requestsres_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值

http://www.lryc.cn/news/367855.html

相关文章:

  • 【Java面试】十七、并发篇(上)
  • 七天进阶elasticsearch[one]
  • 全新抖音快手小红书视频解析去水印系统网站源码
  • 图解 Python 编程(12) | 文件和编码方式
  • CSDN个人主页动态地图(前端/后端)
  • GUI编程-01
  • Linux网络-自定义协议、序列化和反序列化、网络计算服务器的实现和Windows端客户端
  • Hive知识体系保姆级教程
  • 三大网络简介
  • Element-UI全面入门与实战技巧
  • 第103天: 权限提升-Linux 系统辅助项目脏牛Dirty内核漏洞SUIDGUID
  • 如何用群晖当异地组网服务器?
  • 文件怎么去重?5个技巧,教你删除重复文件!
  • 标准发布实施 | 《村镇污水处理一体化集成装备技术规范》
  • 人工智能--教育领域的运用
  • 【设计模式深度剖析】【3】【行为型】【职责链模式】| 以购物中心客户服务流程为例加深理解
  • 评价GPT-4的方案
  • LeetCode | 1624.两个相同字符之间的最长子字符串
  • 【CS.AI】GPT-4o:重新定义人工智能的新标杆
  • 野火FPGA跟练(四)——串口RS232、亚稳态
  • Qt for Android 申请摄像头权限
  • kivy 百词斩项目 报错
  • ChatTTS 文字生成语言本地模型部署
  • 多曝光融合算法(三)cv2.createAlignMTB()多曝光图像融合的像素匹配问题
  • C/C++|类型推导中的模式匹配
  • The 18th Northeast Collegiate Programming Contest(5/9/13)
  • Vue前端在线预览文件插件
  • 【ai】Audio2Face
  • 2024.6.9 一
  • 地图之战争迷雾/地图算法/自动导航(一)