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

相关推荐
l木本I6 分钟前
uv 技术详解
人工智能·python·深度学习·机器学习·uv
宁大小白20 分钟前
pythonstudy Day31
python·机器学习
江上鹤.14838 分钟前
Day34模块和库的导入
python
我爱鸢尾花40 分钟前
第十四章聚类方法理论及Python实现
大数据·python·机器学习·数据挖掘·数据分析·聚类
言之。2 小时前
Dropbear远程连接
python
dhdjjsjs2 小时前
Day34 PythonStudy
python
一个java开发2 小时前
Dask 配置文件加载机制说明
大数据·python
Java水解3 小时前
Django实现接口token检测的实现方案
后端·django
bj_zhb3 小时前
图片的base64表示
python·llm
飞Link3 小时前
【Django】Django 调用外部 Python 程序的完整指南
后端·python·django·sqlite