Flask入门

Posted viewts

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask入门相关的知识,希望对你有一定的参考价值。

一、创建一个简单的例子

from flask import Flask
app = Flask(__name__)

@app.route(/)
def index():
    return <h1>Hello world!</h1>

这是一个完整的应用,视图函数index使用app.route装饰器来映射到url的路径,在flask中还有一种更传统的方式:使用app.add_url_rule()方法

def index():
    return <h1>Hello world!</h1>

app.add_url_rule(/, index, index)

add_url_rule()接收三个参数:url, 端点和视图函数,这里的端点相当与字典中的键。

二、动态路由

@app.route(/<name>)
def index(name):
    return <h1>Hello {}</h1>.format(name)

 

Flask也支持RESTful风格的动态路由,访问http://localhost:5000/wts

技术图片

 

 

 可以看到‘wts‘已经作为参数从路由传递给了视图函数。

三、热重载

Flask的调试模式支持热重载,使用方式是运行flask run命令前执行:

set FLASK_DEBUG=1

也可以在通过编程方式启动的方式中设置:

if __name__ == "__main__":
    app.run(debug=True)

启用重载器后,flask会监视项目中的所有源码文件,发现变动时自动重启服务,在调试的过程中非常方便。

 

四、命令行选项

 

通过执行flask run --help查看。

值得一提的是,默认情况下,flask监听localhost的连接,因此服务器只接收运行服务器的计算机发送的连接,为了让同一网络中的其他计算机发送的连接也能接收到,有两种设置方式:

flask run --host 0.0.0.0

或者

if __name__ == "__main__":
    app.run(debug=True, host=0.0.0.0)

五、应用请求上下文

from flask import request
@app.route(/)
def index():
    user_agent = request.headers.get(User-Agent)
    return <p>{}</p>.format(user_agent)

注意:request在同一个线程中全局可访问,但不会干扰其他线程。

以上是关于Flask入门的主要内容,如果未能解决你的问题,请参考以下文章

python Flask - 数据库片段

Flask从入门到精通之flask程序入门

分享《Flask Web开发实战:入门进阶与原理解析》PDF+源代码

Flask 快速入门

《Flask Web开发实战:入门进阶与原理解析》PDF+源代码

Flask框架从入门到精通之模板宏(十九)