【无标题】

第三单元

1.GET请求的处理、POST请求的处理

get请求处理

在导航栏输入的地址:http://127.0.0.1:8000/get/?page=10&size=00
如果有多个参数中间用&间隔

# 1.先从导入HttpResponse请求
from django.http import HttpResponse

# 2.定义函数视图
def Getview(request):
    # 解析GET参数   request请求带了GET元素,get提取数据,赋值给page1
    page1 = request.GET.get('page')
    size = request.GET.get('size')
    # f格式化输出
    return HttpResponse(f"解析get请求,page={page1},  # 返回简单的视图

# 3.配置路由 每次定义视图都需要
```python
from 子项目名 import views
urlpatterns = [
    path('get/',views.Getview),]
post请求处理
# 1.导入
from django.shortcuts import render  #导入render

# 2.表单视图页面
def FormView(request):  # 获取表单页面 form.html
    return  render(request,'form.html')  #返回页面视图
    
# 3.定义视图函数
def PostView(request):  # 解析post请求
    # 解析数据
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    return HttpResponse(f"解析post,user={user},pwd={pwd}")  #简单的视图函数

# 4.配置路由 每次定义视图都需要
from 子项目名 import views
urlpatterns = [
    path('form/',views.FormView),
    path('post/',views.PostView),
    ]

视图页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title >Title</title>
</head>
<body>
        <h3>表单页面</h3>
{#  action :请求地址   methd:请求方式 #}
{#  从根路径开始夹=加/  #}
        <form action="/post/" method="post">
        {# crsf错误 #}
            {% csrf_token %}
            账号:<input type="text" name="user">
            密码:<input type="password" name="pwd">
            <input type="submit" value="提交">
        </form>
</body>
</html>

2.视图响应HTTPResponse、render、重定向概念及redirect

HTTPResponse

返回简单的字符串

# 导入,定义视图,配置路由
from django.http import HttpResponse

def myapp(request):
	return HttpResponse("简单字符串")
render

返回视图页面(templates里的:html文件)

from django.shortcuts import render
def MyView(request):
    return render(request,'index.html')
    # 返回一个可渲染 HTML 页面
重定向
# 1.导入
from django.shortcuts import redirect   # 导入重定向

# 2.定义两个视图
def RedirectViews1(request):
    # 返回响应
    return HttpResponse("奶茶开门了了,可以买到")

def RedirectViews2(request):
    print('没开门,去另一个')
    return  redirect('/red1/')
# 3.配置路由
from zi import views
urlpatterns = [
    path('red1/',views.RedirectViews1),
    path('red2/',views.RedirectViews2),
]

3.类视图CBV
需要借助其他的工具来体现

# 类视图
from django.views import View  # 导入视图
class CbvView(View):
    def get(self,request):
        return HttpResponse("GET请求处理")
    def post(self,request):
        return HttpResponse('POST请求')
    def put(self,request):
        return HttpResponse('PUT请求')
    def delete(self,request):
        return HttpResponse('DELETE请求')

# 导包
urlpatterns = [
	path('cbv/',views.CbvView.as_view())
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值