======================= 大爽歌作,made by big shuang =======================
一、表單(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>
<meta charset="UTF-8">
<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>
此時運行項目,對應的登錄頁面如下圖