Django 自学笔记兼学习教程第6章第1节——表单(Form)介绍
点击查看教程总目录
1 介绍
如果网站要让用户输入并提交数据(比如注册登录),则需要用到表单。
单纯的html也能写出表单,格式一般是<form>...</form>
Django实现了功能更强大的表单(django.forms.Form
),让开发者能够更高效的开发。
2 代码示例
这里我们以一个最简单的登录表单为例(不做是否注册的检查)
在应用文件夹my_app下新建forms.py
,代码如下
#usr/bin/env python
#-*- coding:utf-8- -*-
from django import forms
class LoginForm(forms.Form):
uid = forms.CharField(label='ID', max_length=10)
password = forms.CharField(label='password', max_length=30, widget=forms.PasswordInput)
视图代码views.py
如下
#usr/bin/env python
#-*- coding:utf-8- -*-
from django.shortcuts import render
from django.http.response import HttpResponse
from my_app.forms import LoginForm
def page(request):
if request.method == 'POST':
form = LoginForm(data=request.POST)
if form.is_valid():
uid = form.cleaned_data["uid"]
return HttpResponse(uid)
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})
login.html
如下
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Login
</title>
</head>
<body>
<div>Log in</div>
<div>
<form method="post">
{% csrf_token %}
{{form.as_p}}
<p><input type="submit" value="Log in"/></p>
</form>
</div>
</body>
</html>
此时运行项目,对应的登录页面如下图
这里只做了一个基础的示例,具体语法我们在本章后面的小节中去讲