简单的实现get与post项目实战
1-1前提是安装Django(版本号:2.2.15) : pip install Django==2.2.15;
1-2创建项目的时候选择Django,编写存放路径及python版本
1-3设置pycharme中的设置,选择Django中的版本
1-4创建子应用 python manage.py startapp 应用名
1-5去setting中设置添加应用名
1-6启动项目,确保没有问题
1-7根路由设置
1-8子应用中设置应用路由
1-9创建应用函数
代码如下(示例):
from django.contrib import admin
from django.urls import path, include,re_path
from APPS import progects_views
# 根路由:可以指向一个函数,也可以指向一个应用(此处是指向一个应用)
urlpatterns = [
path('admin/', admin.site.urls),
# path('progects/',progects_views.login_view), #通过函数
re_path('^students/',include('progects.urls')), #通过子应用
]
代码如下(示例):
from django.urls import path, re_path
from progects import views
urlpatterns = [
re_path('^$', views.login_view),
re_path('^loginget/',views.login_get),
re_path('^loginpost',views.login_post)
]
alt + enter自动可以生成函数
url: http://127.0.0.1:8000/students/
子应用中views.py代码如下(示例):
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
# 函数或者类的视图
def login_view(request):
# return HttpResponse('返回一个前端页面渲染')
return render(request,'login.html')
前端login.html代码如下(示例):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
{# action 从根路径开始写#}
<form action="/students/loginget/" method="get">
<p>
<label>用户名:</label><input type="text" name="usename">
</p>
<p>
<label>密码:</label><input type="password" name="pwd">
</p>
<p>
<input type="submit" value="登录">
</p>
</form>
</body>
</html>
url:http://127.0.0.1:8000/students/loginget/?usename=zhangsan&pwd=123
提交用户名及密码实际是采用的get请求提交,信息会在地址中进行(?)拼接
子应用中views.py代码如下(示例):
def login_get(request):
uname = request.GET.get('usename','')
pwd = request.GET.get('pwd','')
if uname == 'zhangsan' and pwd =='123':
return HttpResponse("登录成功")
return HttpResponse("登录失败")
# 表单请求地址 ? 拼接请求参数
# 所有的搜索引擎的时候,都是使用的get,存在缓存至本地,下次再访问的时候速度快
url:http://127.0.0.1:8000/students/loginpost/
提交表单信息,具体的用户名密码信息,不在地址中体现;
与get请求中前端略有修改
代码如下(示例):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面_post</title>
</head>
<body>
{# action 从根路径开始写#}
<form action="/students/loginpost/" method="post">
{# 方式一:setting中隐藏掉中间件部分#}
{# 方式二:解开中间件,隐藏域#}
{# {% csrf_token %}#}
<p>
<label>用户名:</label><input type="text" name="usename">
</p>
<p>
<label>密码:</label><input type="password" name="pwd">
</p>
<p>
<input type="submit" value="登录">
</p>
</form>
</body>
</html>
setting中注释代码如下(示例):
# 中间件
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',
]
代码如下(示例):
def login_view(request):
# return HttpResponse('返回一个前端页面渲染')
return render(request,'login.html')
def login_post(request):
uname = request.POST.get('usename','')
pwd = request.POST.get('pwd','')
if uname == 'zhangsan' and pwd =='123':
return HttpResponse("登录成功")
return HttpResponse("登录失败")