flask请求理解

首先用户在浏览器输入一个url访问某一个请求

falsk接受用户请求并分析请求url

为这个url找出相应的处理函数

执行函数并生成响应,返回给浏览器

浏览器接受并解析响应,将信息解析在页面当中

url---->request--->函数--->response---->浏览器解析并响应在页面

app.route()接受请求的url之后处理这个url下面的视图函数

一个视图函数可以绑定多个url

动态路由

动态路由可以设置默认值, 添加参数defaults

@app.route('/hello', defaults={'name': 'Owen'})

@app.route('/greet/<name>')
def greet(name):
    return '<h1>Hello, %s!</h1>' % name

现在最好把目录切换到flask脚本下面, 之后运行flask run执行程序,现在已经不推荐用app.route来执行程序了

flask会自动寻找app如果你的命名不是APP, 需要在终端输入这是在linux系统下:export FLASK_APP=脚本的名

要是在windows下需要这样设置set FLASK_APP=脚本名

改变默认的5000端口,flask run --port 8100

创建一个.flaskenv文件开发的时候写上

FLASK_ENV=development

flask shell 可以在命令行中调试代码,很有用

flask的配置(app.config)是字典的子类,可以像字典那样添加配置和读取配置

app.config('ADMIN_NAME' )  = 'Owen'

注意配置的名称必须大写。小写的变量是不会读取的。使用update的方法可以一次加载多个值 

app.config.update(TESTING = True,

SECRET_KEY='sadfasdf',

)

响应的读取配置和读取字典一样

value = app.config['ADMIN_NAME']

某些扩展需要读取配置来完成初始化操作

所以最好在程序实例化之前就加载配置

为了避免程序的硬编码,而引入了url_for()

url_for()的第一个参数是视图函数的名称, 第二个参数是默认的url变量

只会获取相对的url如果要是想获取full_path需要把_external参数设置为True

把视图函数注册为flask的命令行参数

@app.cli.command()

def hello():
    click.echo('Hello, Human!')

在命令行执行flask hello就可以执行此视图函数了

也可以在@app.cli.command('say_hello')

在命令行执行flask say_hello

静态文件和模板的目录形式

hello/
    - templates/
    - static/
    - app.py

一般写项目的时候程序目录结构

在创建程序实例后,使用config对象的from_pyfile()方法即可加
载配置,传入配置模块的文件名作为参数:

app.config.from_pyfile('settings')

在使用多个py脚本的时候app的实例化应该写上项目名

app = Flask('项目名')     or    Flask(__name__.split('.')[0])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值