Flask 入门(1):概念

1. 最小的应用

1
2
3
4
5
6
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello, World!'

这段代码发生了什么?

  1. 首先,导入 Flask 类

  2. 创建名为 app 的 Flask 实例

    将构造函数的 name 参数传给 Flask 程序,这一点可能会让 Flask 开发新手心
    生迷惑。Flask 用这个参数决定程序的根目录,以便稍后能够找到相对于程
    序根目录的资源文件位置。

  3. route,即路由,处理 URL 和函数之间关系的程序称为路由。@app.route('/')是一个装饰器,它告诉它所装饰的函数hello_world()要触发的 URL

  4. hello_world()函数用于生成页面,并返回我们要展示在浏览器上的信息

浏览器向服务器发送请求,服务器再把请求发送给 flask,flask 把返回的值再传到浏览器。

2. 启动程序并进入调试

启动程序

1
2
3
$ export FLASK_APP=hello.py
$ flask run
* Running on http://127.0.0.1:5000/

在命令行进入调试模式,确保每次修改代码后不必重启服务器

1
2
$ export FLASK_ENV=development
$ flask run

3. URL 构建函数:url_for()

什么,写死 URL?这辈子是不可能把 URL 写死的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def index():
return 'index'

@app.route('/login')
def login():
return 'login'

@app.route('/user/<username>')
def profile(username):
return '{}\'s profile'.format(username)

with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('profile', username='John Doe'))

/
/login
/user/John%20Doe

3. http 方法

路由默认只有 get 方法,可以使用路由装饰器的 methods 参数来处理不同的 HTTP 方法。

4. 静态文件

比如说 CSS、js、背景图片这些都是固定的,存储在 static文件夹中,我可以用url_for()函数来访问这些静态文件,比如访问static/style.css就可以通过url_for('static', filename='style.css')

5. 渲染模板

另外一个非常重要的文件夹是templates,好比就是人的衣柜,它可以让人有不同的装饰风格,flask 的模板引擎是 Jinja。

其他

如会话、重定向、响应,目前还用不到,后续补充。

觉得还不错?赞助一下~
0%