from flask import Flask 导入Flask扩展 app = Flask(__name__) 创建Flask应用实例 __name__的作用:为了确认资源所在路径 @app.route('/') 定义路由及视图函数 def index(): 路由默认只支持GET return 'hello world' if __name__ == '__main__': 启动程序 app.run(debug=True) 执行了app.run(),就会将Flask程序运行在一个简易的服务器上 服务器由Flask提供,用于测试 1、返回网页 可以导入render_templates来返回一个网页,同时新建一个.html文件(假设名为index.html) 使用时只需要return render_templates('index.html') 2、路由定义的基本方式 路由默认只支持GET,需要添加,需要自行在method中指定 3、给路由进行传参 有时我们需要将同一类URL映射到同一个视图函数中进行解析。例如:使用同一个视图函数显示不同的用户订单信息 路由传递的参数默认当string处理 需要在视图函数的()内填入参数名 <>里面是定义路由的参数
也可以对参数类型进行限制,输入数据类型不匹配会报错
4、Jinja2模板引擎
导入render_template
render_template函数的第一个参数是模板的文件名,后面的参数都是键值对,表示模板中变量对应的真实值
两个视图函数不能引用同一个模板
用{{}}来表示变量名,这种语法叫做变量代码块
用{# #}来进行注释
app.py:
index.html:
output:
5、变量代码块的使用
用{{}}来表示变量名,这种语法叫做变量代码块
app.py:
index.html:
output:
6、控制代码块
用{% %}定义的控制代码块,可以实现一些语言层次的功能,比如循环或者if语句
app.py:
index.html:
output:
7、过滤器
过滤器的本质就是函数,有时候我们不仅仅是需要输出变量的值,我们还需要修改变量的提示,甚至格式化、运算等,而在模板中不能直接调用python的某些方法,因此就需要过滤器。
过滤器的使用方法:变量名 | 过滤器
{{variable | filter_name(*agrs)}} (没有参数可省略括号)
在Jinja2中,过滤器支持链式调用,其格式为:
{{ 'hello world' | reverse | upper }}
8、处理Web表单
Web表单是Web应用程序的基本功能,是HTML页面中负责数据采集的部件,由表单标签、表单域和表单按钮三部分组成。
在Flask中,为了处理表单,一般使用Flask-WTF扩展,它封装了WTForms,并且有验证表单数据的功能。
例:
目的:实现一个简单的登陆登录逻辑处理
tips:(1)路由需要有GET和POST两种请求方式 -->需要判断请求方式
(2)获取请求的参数
(3)判断参数是否填写 & 密码是否相同
(4)如果判断没问题,返回success
导入request -->一个请求对象,可以获取请求方式、数据
不足:报错只能在后台查看,希望将错误信息显示在网页上
9、改进
用flash给模板传递消息 -->需要对内容加密,即需要设置secret key,做加密消息的混淆
模板中需要遍历消息
u解决编码问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。