Django表单
DjangoTest项目
创建DjangoTest项目
文件结构
hello.py
from django.shortcuts import render
def hello_get(request):
print("awda")
return render(request, 'hello.html')
def hello_post(requset):
return render(requset, 'hello1.html')
def get(request):
request.encoding = 'utf-8'
if 'name' in request.GET:
name = request.GET['name']
else:
name = '空表单'
print(name)
return render(request, 'out.html', {'name': name})
def post(request):
request.encoding = 'utf-8'
if request.POST:
name = request.POST['name']
else:
name = '空表单'
return render(request, 'out.html', {'name': name})
urls.py
from django.conf.urls import url
from . import hello
urlpatterns = [
url(r'hello/$', hello.hello_get),
url(r'hello1/$', hello.hello_post),
url(r'hello/get', hello.get),
url(r'hello/post', hello.post),
]
hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django表单</title>
</head>
<body>
<form method="get" action="get">
<input type="text" name="name" >
<input type="submit" value="提交">
</form>
</body>
</html>
hello1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django表单</title>
</head>
<body>
<form method="post" action="hello/post">
{% csrf_token %}
<input type="text" name="name" >
<input type="submit" value="提交">
</form>
</body>
</html>
out.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django表单</title>
</head>
<body>
<h1>你提交的表单为:{{ name }}</h1>
</body>
</html>
运行截图
get提交
post提交
注
表格后面还有一个{% csrf_token %}的标签。csrf 全称是 Cross Site Request Forgery。
这是Django提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。