Series Overview
浏览 discoverflask.com ,可以看到本系列的视频、博客以及源代码。
Flask 是一个强大的 Web 微框架。它的 API 相当小,所以也很容易学习和使用。但是别被它愚弄了,它其实对大流量的企业级应用有强大的支持。
您可以从完全包含在一个文件中的应用程序开始,然后在网站变得越来越复杂的情况下,以结构良好的方式慢慢扩展到多个文件和文件夹。
Setup
Environment
$ python --version
Python 3.6.6
mkdir discover-flask-project
cd discover-flask-project
virtualenv .venv
source .venv/bin/activate
pip install flask
Version Control
我们添加版本控制,从 gitignore 上复制 Python.gitignore 到项目中,并改名:
mv Python.gitignore .gitignore
git init
git add .
git commit -a -v
Structure
├── app.py
├── static
└── templates
Routes
app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return "Hello world"
@app.route('/welcome')
def welcome():
return render_template('welcome.html')
if __name__ == '__main__':
app.run(debug=True)
这非常简单。
导入Flask
类后,我们创建(或实例化)应用程序对象,定义视图以响应请求,然后启动服务器。
的route
装饰被用来关联(或地图)的URL的功能。URL /
与home()
函数关联,因此当最终用户请求该URL时,视图将以字符串响应。同样,当/welcome
请求URL 时,视图将呈现 welcome.html 模板。
简而言之,实例化主应用程序对象,然后将其用于将URL映射到函数。
有关更详细的说明,请阅读Flask的快速入门教程。
Test
是时候进行健全检查了。启动开发服务器:
(.venv) $ python app.py
导航到 http://localhost:5000/ 的时候很正常,但是导航到 http://localhost:5000/welcome 就会看到一个报错 jinja2.exceptions.TemplateNotFound,这是由于我们没有设置 welcome.html 模板。让我们先在终端终止掉服务(Ctrl + C
)。
Templates
templates/welcome.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Intro</title>
</head>
<body>
<div class="container">
<h1>Welcome to Flask</h1>
<p>Click <a href="/">here</a> to go home.</p>
</div>
</body>
</html>
保存后重新运行 python app.py
, 现在可以支持打开 /welcome 路由了,但是界面不是很好看,让我们来完善一下。
Bootstrap
templates/welcome.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous">
<title>Flask Intro</title>
</head>
<body>
<div class="container">
<h1>Welcome to Flask</h1>
<p>Click <a href="/">here</a> to go home.</p>
</div>
</body>
</html>
还记得我们让服务器运行了吗?好吧,当Flask处于调试模式时app.run(debug=True)
,有一个自动重载机制可以启动代码更改。因此,我们可以在浏览器中按刷新,我们应该看到新模板正好盯着我们。
网友评论