启动flask项目、flask配置方式、flask路由形式及路由参数

一、如何启动一个flask项目?

方法一:手动启动

1、安装flask框架

   pip install flask

2、文件中导入flask,生成一个flask对象

    from flask import Flask

   app = Flask(__name__)

3、路由注册,并写响应函数

@app.route("/")

def index():

     return "hello  flask"

4、启动flask

if __name__ == '__main__':

     app.run()

 方法二:

利用flask框架在pycharm中创建一个flask项目

 

 结果:

 

 

 二、flask的4剑客

 1、如何响应一个字符串

2、如何响应一个html页面

3、如何跳转页面

4、如何返回一个json字符串

 

 

 结果:

三、flask配置的4种方式

1、直接给app对象赋值属性

2、以字典形式,可以对所有的flask配置项 配置

3、以文件形式

4、以类形式

 四、路由

点进去

 

 

 总结:路由的两种方式

 路由方式2 中的参数

rule 是路由,endpoint是路由别名,view_func是响应函数的函数名

进 .add_url_rule看源码

 

 

 

 上面一句是指:将响应函数的函数名与endpoint相对应

进 .route 看源码

 

 

用endpoint 反向解析取出路由。注意:要是endpoint不写,就默认是endpoint=函数的函数名。

 

 

 

 

路由参数:有名分组(就是给路由后面加后缀)

五、自定义转化器

1、步骤

 2、

from flask import Flask, url_for
from werkzeug.routing import BaseConverter
app
= Flask(import_name=__name__)
#1 写类,继承BaseConverter class RegexConverter(BaseConverter):
""" 自定义URL匹配正则表达式""" def __init__(self, map, regex): super(RegexConverter, self).__init__(map) self.regex = regex def to_python(self, value): """ 路由匹配时,匹配成功后传递给视图函数中参数的值""" print("to_python",value,type(value)) return int(value)+1 def to_url(self, value): """使用url_for反向生成URL时,传递的参数经过该方法处理,返回的值用于生成URL中的参数""" val = super(RegexConverter, self).to_url(value) return val+"222"

# 2 注册:app.url_map.converters['regex'] = RegexConverter 添加到flask中 app.url_map.converters['regex'] = RegexConverter
# 3 使用:@app.route('/index/<regex("\d+"):nid>') 正则表达式会当作第二个参数传递到类中 # 正则匹配处理结果,要交给to_python,to_python函数可以对匹配处理结果做处理 @app.route('/index/<regex("\d+"):nid>') def index(nid): print("index",nid,type(nid)) print(url_for('index', nid='888')) 这数什么意思????? return 'Index' if __name__ == '__main__': app.run()

3、进 BaseConverter  看源码

 

posted @ 2020-03-18 09:50  薛定谔的猫66  阅读(7897)  评论(0)    收藏  举报