Flask框架入门学习

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] 举报,一经查实,本站将立刻删除。

相关推荐