版本声明:转载请注明出处。未经允许,禁止商业用途。
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成功