Flask 笔记一

flask 入口文件中要注意的事项

flask中 的路由方式有两种

一.

@app.route('/hello/')   #  /hello  后面 / 可使   /hello  重定向到 /hello/

二.

app.add_url_rule('/hello',view_func=hello)      路由方式一 也就是对 add_url_rule的封装  源码中也做了相应的注解

同时也是  基于类的视图, 即插视图

app.run() 中参数的作用

debug=True时 只能通过 127.0.0.1 或 localhost 访问  debug 模式不可用在生产环境***

host='0.0.0.0' 时  外网可以访问

port='  **'  端口号自定义

配置文件 config 

配置文件导入的两种方式 

1. 导入包的形式,类似于模块导入

from config import  配置参数

调用方式 直接使用

2. app.config.from_object('config')    参数接受一个模块的路径, 

调用方式  app.config['配置参数']

此种调用方式有两个陷阱:

当 config.py的配置中 Debug=True时

app.config['Debug'] 会报错 报错提示为 找不到常量

解: 在flask中  app.config.from_object() 会自动忽略 小写及大小写混合的参数,也就是只接受全大写的参数,自动将 Debug 常量忽略

app.config['DEBUG'] 不会报错

自动认为 DEBUG != Debug ,不会报错的原因是 DEBUG模式 默认为 False,启动的 flask模式也就是 debug=False 模式

if __name__ == '__main__':真正的作用

 

生产环境中 例如 nginx + uwsgi 是找不到 flask的入口文件的

if....... 里的代码就是定义了 入口文件,且 if 语句里的代码只在入口文件中执行

 

视图函数

 

# mvc 里的 控制器 就是 视图函数

 

 

@app.route('/hello')    # 兼容 用户 在访问时兼容访问
def hello():
# 基于类的视图 (即插视图)
'''视图函数比较关注的 几点 respons 对象中
status code 200,404,301
content-type http headers http请求中的 头文件
content-type = text/html
默认为 text/html形式, text/plain文本格式 , appcaltion/json是 返回 json格式的 方式
'''
headers = {
'content-type' : 'text/plain',
'location': 'http://www.baidu.com'
}
# response = make_response('<htmxl></html>',301) # 创建 response对象
# response.headers = headers
# return response # response 返回的 第一种方式
return '<html></html', 301, headers # response的 第二种方式 flask 用到最多, 实质是元组 flask最终转换为 第一种的 response的 对象

 

posted @ 2018-04-06 10:24  poetL  阅读(214)  评论(0编辑  收藏  举报