Pycharm上Django的使用 Day7

你离开我真会死。 提交于 2020-03-25 17:46:55

3 月,跳不动了?>>>

1.让用户能够输入数据

当前,只有超级用户能够通过管理网站输入数据,我们不想让用户与管理网站交互,因此我们将使用Django的表单创建工具来创建让用户能够输入数据的页面

1>创建用于添加主题的表单

在Django中,创建表单的最简单方式是使用ModelForm,它根据我们在models.py中的信息自动创建表单。创建一个名为forms.py的文件,并存储到models.py所在的目录中

1处导入模块forms以及要使用的模型Topic。

2处根据模型Topic创建一个表单,该表单只包含字段text

4处让Django不要为字段text生成标签

2>定义new_topic的URL模式

将请求交给视图函数new_topic()

3>编写视图函数new_topic()

导入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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!