Day 1 - Flask - 第一个 Flask Web 程序

Posted 咂摸

tags:

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

本教程前提:

  • Python 3

  • macOS 环境

虚拟环境

安装 Flask 最便捷的方式是使用虚拟环境。虚拟环境是 Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。


虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境还有个好处,那就是不需要管理员权限。

1.创建虚拟环境
$ python3 -m venv XXX
2.激活虚拟环境(创建的虚拟环境目录为 venv
$ source venv/bin/activate
3.退出虚拟环境:
(venv) $ deactivate

使用 pip 安装 Python 包

大多数 Python 包都使用 pip 命令安装,使用 pip 安装 Flask(其它 Python 包同理):

(venv) $ pip install flask

一个简单的 Demo

./index.py

from flask import Flask

app = Flask(__name__)

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

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

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

启动程序:

(venv) $ python index.py

访问 http://localhost:5000/ 输出 Hello World!
访问 http://localhost:5000/user/Tom 输出  Hello Tom!

从 Demo 中学习路由、修饰器、视图函数、请求、响应概念,一步步分析每行代码:

1. from flask import Flask

从 flask 库中导入 Flask 函数

2. app = Flask(__name__)

创建 Flask 对象 app,Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。在大多数程序中,Python 的 __name__ 变量就是所需要的值。

3. @app.route('/')

客户端(例如 Web 浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask 程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到 Python 函数的映射关系。处理 URL 和函数之间的关系的程序称为路由。

在 Flask 程序中定义路由的最简便方式,是使用程序实例提供的 app.route 修饰器,把修饰的函数注册为路由。

修饰器是 Python 语言的标准特性,可以使用不同的方式修改函数的行为。惯常用法是使用修饰器把函数注册为事件的处理程序。

4. def index()

index() 函数放在 @app.route('/') 后面,所以就是把 index() 函数注册为路由。

如果部署程序的服务器域名为 http://www.example.com ,在浏览器中访问 http://www.example.com 后,会触发服务器执行 index() 函数。

5. @app.route('/user/<name>' )

@app.route('/'),如果部署程序的服务器域名为 http://www.example.com ,在浏览器中访问 http://www.example.com/user/Tom  后,会触发服务器执行下方修饰函数 sayHello(name)

6. if name == '__main__'

详见 StackOverflow :

http://stackoverflow.com/questions/419163/what-does-if-name-main-do

字符串拼接

1. 使用 +
str = 'hello' + 'world'
2. 使用字符串 join() 方法
names = ['tom', 'jerry']
nameStr = ' '.join(names)
3. 使用 %
name = 'Tom'
str = '<h1> hello %s!</h1>' % name
4. format() 方法
str = '{0} is not {1}'.format('Tom', 'Jerry')

str = '{who} is not {you}'.format(who='Tom', you='Jerry')

以上是关于Day 1 - Flask - 第一个 Flask Web 程序的主要内容,如果未能解决你的问题,请参考以下文章

DAY1-Flask项目

flask day01

M1-Flask-Day1

Flask 10 天开发一个网站--Day1

python16_day38flask

flask_day01