初学flask

第一部分,初始化:所有的Flask都必须创建程序实例,

web服务器使用wsgi协议,把客户端所有的请求都转发给这个程序实例
程序实例是Flask的对象,一般情况下用如下方法实例化
Flask类只有一个必须指定的参数,即程序主模块或者包的名字
from flask import Flask
app = Flask(__name__)

第二部分,路由和视图函数:

#  客户端发送url给web服务器,web服务器将url转发给flask程序实例,程序实例
#  需要知道对于每一个url请求启动那一部分代码,所以保存了一个url和python函数的映射关系。
#  处理url和函数之间关系的程序,称为路由
#  在flask中,定义路由最简便的方式,是使用程序实例的app.route装饰器,把装饰的函数注册为路由
@app.route('/')
def hello_world():
    return __name__
第三部分:程序实例用run方法启动flask集成的开发web服务器
#  __name__ == '__main__'是python常用的方法,表示只有直接启动本脚本时候,才用app.run方法
#  如果是其他脚本调用本脚本,程序假定父级脚本会启用不同的服务器,因此不用执行app.run()
#  服务器启动后,会启动轮询,等待并处理请求。轮询会一直请求,直到程序停止。
if __name__ == '__main__':
    app.run()
 

可以在终端执行flask run来执行程序

自动发现程序需要将名称改为app.py,或者从环境变量FLASK_APP中读取对应的程序名称

使用

export FLASK_APP=name

来修改环境变量的值,修改为当前需要执行的主模块名字

一个视图函数可以关联多个装饰器

视图函数名可以自行修改,视图函数名可以用来生成url,使用url_for函数。

 

第一部分,初始化:所有的Flask都必须创建程序实例,

web服务器使用wsgi协议,把客户端所有的请求都转发给这个程序实例
程序实例是Flask的对象,一般情况下用如下方法实例化
Flask类只有一个必须指定的参数,即程序主模块或者包的名字
from flask import Flask
app = Flask(__name__)

第二部分,路由和视图函数:

#  客户端发送url给web服务器,web服务器将url转发给flask程序实例,程序实例
#  需要知道对于每一个url请求启动那一部分代码,所以保存了一个url和python函数的映射关系。
#  处理url和函数之间关系的程序,称为路由
#  在flask中,定义路由最简便的方式,是使用程序实例的app.route装饰器,把装饰的函数注册为路由
@app.route('/')
def hello_world():
    return __name__
第三部分:程序实例用run方法启动flask集成的开发web服务器
#  __name__ == '__main__'是python常用的方法,表示只有直接启动本脚本时候,才用app.run方法
#  如果是其他脚本调用本脚本,程序假定父级脚本会启用不同的服务器,因此不用执行app.run()
#  服务器启动后,会启动轮询,等待并处理请求。轮询会一直请求,直到程序停止。
if __name__ == '__main__':
    app.run()

 

一个视图函数可以关联多个装饰器

视图函数名可以自行修改,视图函数名可以用来生成url,使用url_for函数。

生成的是相对的URL,如果需要生成绝对URL,需要将_externals设为true

使用模板来渲染页面

使用jinja2,{{ }}来标记变量,{% %}标记语句,{# #}标记注释

建立模板需要先建立目录templates,在这个目录下建立模板页面

通过render_template函数来进行模板的使用
render_template函数第一个参数是模板页面的路径。后面的参数是为模板页面中的变量赋值。

使用app.debug()=TRUE可以将模式调整为debug模式

静态资源的使用
<img src="{{url_for(static, filename='foo.png'}}">
建立一个static的目录将图片资源放入


flask内置的URL变量转换器

 

除了url,请求报文的信息都可以使用request对象提供的属性和方法获取

 

 

 

posted @ 2021-01-06 17:41  QianweiZ  阅读(64)  评论(0)    收藏  举报