项目目录:
启动项目:
关于请求和响应的请求信息和相应信息的设置还需要你自己写吗?之前我们用wsgiref是不是还写来着,现在都不需要写了,简单不。
还有一点:post请求的时候你会发现一个 Forbidden的错误:
现在只需要做一步,在settings配置文件里面将这一行注释掉,这是django给你加的一个csrf的认证,我们可以暂时取消掉验证
将CsrfViewMiddleware注释掉就可以了。
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
一个简单登录的列子:
1.再urls里面配置视图函数路径,urls里面就是要配置我请求的接口路径。
写法:url(r'^index/', views.index),加上^符合,这个代表正则。
2.在templates里面方要访问的html页面
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <!-- 告诉浏览器安装IE的最高版本渲染浏览器--> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- 整个网站和等比缩放,目的兼容:移动端,web端。可以完整访问网站--> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap 引入文件 --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h1>欢迎,登录页面!</h1> <form action="/index/" method="post"> 用户名:<input type="text" name="userName"> 密码:<input type="text" name="password"> <input type="submit"> </form> </body> </html>
3.在views里面写我们绑定的视图函数(接口)
render:用来返回Html页面。
HttpResponse:用来返回字符串
视图函数中形参request代表,请求过来的参数。
获取参数的两种形式:request.GET,requet.POST返回都是一个字典,可以通过键来获取值
get:request.GET.get("XXX")
post:request.POST.get("XXX")
request.method:获取请求方式
from django.shortcuts import render,HttpResponse # Create your views here. ''' def index(request): # 获取GET数据 print(request.GET) #<QueryDict: {'userName': ['admin'], 'password': ['xr123123']}> userName = request.GET.get("userName") password = request.GET.get("password") if userName == "admin" and password == "1111": # HttpResponse用来回复字符串 return HttpResponse("登录成功") else: return HttpResponse("登录失败") # return render(request,'login.html') ''' def index(request): # 获取请求方式数据 print(request.method) if request.method == 'POST': userName = request.POST.get("userName") password = request.POST.get("password") if userName == "admin" and password == "1111": # HttpResponse用来回复字符串 return HttpResponse("登录成功") else: return HttpResponse("登录失败") else: return render(request,'login.html')