版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flask的WTF与SQLite2知识目标Flask的WTFFlask的SQLite01能力目标了解Flask的WTF了解Flask的SQLite02学习目标3目录01Flask的WTF02Flask的SQLiteFlask的WTF4Web应用程序的一个重要方面是为用户提供用户界面。HTML提供了一个<form>标签,用于设计界面。可以适当地使用Form(表单)元素,例如文本输入,单选按钮,选择等。用户输入的数据以Http请求消息的形式通过GET或POST方法提交给服务器端脚本。• 服务器端脚本必须从http请求数据重新创建表单元素。因此,实际上,表单元素必须定义两次-一次在HTML中,另一次在服务器端脚本中。• 使用HTML表单的另一个缺点是很难(如果不是不可能的话)动态呈现表单元素。HTML本身无法验证用户的输入。这就是WTForms的作用,一个灵活的表单,渲染和验证库,能够方便使用。Flask-WTF扩展为这个WTForms库提供了一个简单的接口。使用Flask-WTF,我们可以在Python脚本中定义表单字段,并使用HTML模板进行渲染。还可以将验证应用于WTF字段。让我们看看这种动态生成的HTML是如何工作的。首先,需要安装Flask-WTF扩展。pipinstallflask-WTF已安装的软件包包含一个Form类,该类必须用作用户定义表单的父级。Flask的WTF5WTforms包中包含各种表单字段的定义。下面列出了一些标准表单字段。序号标准表单字段与描述1TextField表示<inputtype='text'>HTML表单元素2BooleanField表示<inputtype='checkbox'>HTML表单元素3DecimalField用于显示带小数的数字的文本字段4IntegerField用于显示整数的文本字段5RadioField表示<inputtype='radio'>
HTML表单元素6SelectField表示选择表单元素7TextAreaField表示<testarea>
HTML表单元素8PasswordField表示<inputtype='password'>
HTML表单元素9SubmitField表示<inputtype='submit'>表单元素Flask的WTF6例如,包含文本字段的表单可以设计如下:除了'name'字段,还会自动创建CSRF令牌的隐藏字段。这是为了防止CrossSiteRequestForgery(跨站请求伪造)攻击。渲染时,这将导致等效的HTML脚本,如下所示:Flask的WTF7在Flask应用程序中使用用户定义的表单类,并使用模板呈现表单。Flask的WTF8WTForms包也包含验证器类。它对表单字段应用验证很有用。以下列表显示了常用的验证器。序号验证器类与描述1DataRequired检查输入字段是否为空2Email检查字段中的文本是否遵循电子邮件ID约定3IPAddress在输入字段中验证IP地址4Length验证输入字段中的字符串的长度是否在给定范围内5NumberRange验证给定范围内输入字段中的数字6URL验证在输入字段中输入的URLFlask的WTF9现在,我们将对联系表单中的name字段应用'DataRequired'验证规则。如果验证失败,表单对象的validate()函数将验证表单数据并抛出验证错误。Error消息将发送到模板。在HTML模板中,动态呈现error消息。Flask的WTF10以下示例演示了上面给出的概念。Contact表单的设计如下(forms.py)。Flask的WTF11验证器应用于Name和Email字段。下面给出了Flask应用程序脚本(formexample.py)。Flask的WTF12模板(contact.html)的脚本如下:Flask的WTF13contact.htmlFlask的WTF14在Pythonshell中运行formexample.py,访问URLhttp://localhost:5000/contact。显示Contact表单将如下所示。Flask的WTF15如果有任何错误,页面将如下所示:Flask的WTF16如果没有错误,将显示'success.html'。Flask的SQLite17Python对SQlite有内置的支持。SQlite3模块附带Python发行版。有关在Python中使用SQLite数据库的详细教程,请参考《SQLite-Python》的内容。在本节中,我们将了解Flask应用程序如何与SQLite交互。创建一个SQLite数据库'database.db'并在其中创建学生表。我们的Flask应用程序有三个View功能。第一个new_student()函数已绑定到URL规则('/addnew')。它呈现包含学生信息表单的HTML文件。Flask的SQLite18'student.html'的HTML脚本如下:Flask的SQLite19可以看出,表单数据被发布到绑定addrec()函数的'/addrec'URL。这个addrec()函数通过POST方法检索表单的数据,并插入学生表中。与insert操作中的成功或错误相对应的消息将呈现为'result.html'。Flask的SQLite20result.html的HTML脚本包含一个转义语句{{msg}},它显示Insert操作的结果。Flask的SQLite21该应用程序包含由'/list'URL表示的另一个list()函数。它将'rows'填充为包含学生表中所有记录的MultiDict对象。此对象将传递给list.html模板。Flask的SQLite22此list.html是一个模板,它遍历行集并在HTML表中呈现数据。Flask的SQLite23最后,'/'URL规则呈现'home.html',它作为应用程序的入口点。以下是Flask-SQLite应用程序的完整代码。Flask的SQLite24Flask的SQLite25Flask的SQLite26在开发服务器开始运行时,从Pythonshell
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理基础知识题库及答案,精准题库,模拟试题
- (2025年)《安徒生童话》《格林童话》《稻草人》闯关阅读试题附答案
- (2026年)宁化县招聘协管员考试真题及答案
- (2025年)中学生安全知识测试题及答案
- 2026年危化品安全管理知识竞赛考试及答案
- 德州市临邑县2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- DB43∕T 1305-2017 尖吻蝮养殖技术规程
- 秦皇岛市抚宁县2025-2026学年第二学期五年级语文第七单元测试卷(部编版含答案)
- 崇左市凭祥市2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 济宁市汶上县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 广州恒运企业集团股份有限公司招聘笔试题库2026
- 机械加工业安全作业行为规范培训
- 2026年春人教版(新教材)初中信息科技八年级全一册第二学期教学计划及进度表(第4-6单元)
- 2026年中国铁路总公司面试常见问题解析
- 2026年考研综合面试高频问题解析
- 2025中国建筑集团有限公司所属单位招聘笔试试题附答案解析
- 23-华为的组织建设(6版)
- 2025年-2026年钢轨探伤工(高级)技能理论考试题库(附答案)
- 果茶店创业计划书
- 隐匿阴茎的诊治2025
- 2025年考研英语二真题及答案解析(完整版)
评论
0/150
提交评论