版本聲明:轉載請註明出處。未經允許,禁止商業用途。
7 使用Python Django開發web應用 講義 表單管理 講師:劉一凡
表單是用戶向服務器提交信息的最主要方式。
實現通過前臺提交blog的功能
第一步:
定義form
在views.py中定義
from django import forms
class BlogForm(forms.ModelForm):
class Meta:
#指明表單基於哪個數據模型,生成HTML表單時,會包含模型blog中的所有屬性字段
model=Blog
#從生成的HTML表單中移除時間戳
exclude={'timestamp',}
第二步:
在template中使用,在blog.html中添加
<form action="/blog/add/", method="post">
<!-- avoid "CSRF verification failed" -->
{% csrf_token %}
<table>{{ form }}</table>
<input type=submit name="submit" value="commit">
</form>
第三步:
在views.py中
在函數blog()的定義中進行修改,將BlogForm的實例傳遞給template blog.html。
在context中添加元素:'form':BlogForm()
處理用戶提交的信息
from datetime import datetime
from django.http.response import HttpResponseRedirect
def add(request):
if request.method=='POST':
form = BlogForm(request.POST)
if form.is_valid():
blog = form.save(commit=False)
blog.timestamp=datetime.now()
blog.save()
return HttpResponseRedirect('/blog/')
第四步:
添加url映射,在blog/urls.py的urlpatterns中添加
path('add/',views.add),
第五步:
添加blog,查看效果
在前臺添加blog成功