1.让用户可以输入数据数据库
当前,只有超级用户可以经过管理网站输入数据,咱们不想让用户与管理网站交互,所以咱们将使用Django的表单建立工具来建立让用户可以输入数据的页面浏览器
1>建立用于添加主题的表单服务器
在Django中,建立表单的最简单方式是使用ModelForm,它根据咱们在models.py中的信息自动建立表单。建立一个名为forms.py的文件,并存储到models.py所在的目录中函数
1处导入模块forms以及要使用的模型Topic。工具
2处根据模型Topic建立一个表单,该表单只包含字段text测试
4处让Django不要为字段text生成标签网站
2>定义new_topic的URL模式3d
将请求交给视图函数new_topic()orm
3>编写视图函数new_topic()csrf
导入HttpResponseRedirect类,用户提交主题后将使用这个类将用户重定向到网页topics,函数reverse()根据指定的URL模型肯定URL
1处的测试肯定请求方法是GET仍是POST。若是请求方法不是POST,那就多是GET,所以咱们要返回一个空表单
2处建立一个TopicForm实例,将其存储在变量form中,再经过上下文字典将这个表单发送给模板(7处)
若是请求方法是POST,将执行else代码块,3处使用用户输入的数据建立一个TopicForm实例form
4处检查提交的数据是否有效;5处表示调用save()将表单中的数据写入数据库
6处使用reverse()获取页面topics的URL,并将其传递给HttpResponseRedirect()
4>建立模板new_topic
1处定义了一个HTML表单,实参action告诉服务器将提交的表单数据发送到视图函数new_topic(),实参method让浏览器以POST方式提交数据
2处使用模板标签{% csrf_token %}来防止攻击者利用表单来获取对服务器未经受权的访问
3处用于显示表单
4处定义一个提交按钮
5>在页面topics中添加一个到页面new_topic的连接
6>运行manage.py