使用虚拟环境和flask
安装virtualenv
pip install python-virtualenv
安装flask
pip install flask
>python
>>>import flask
>>>
如果上面几步没问题,那就代表安装成功。
初始化
Web 服务器使用一种名为 Web 服务器网关接口( Web Server Gateway Interface, WSGI)的协议,把接收自客户端的所有请求都转交给这个对象处理。
from flask import Flask
app = Flask(__name__)
Flask 类的构造函数只有一个必须指定的参数,即程序主模块或包的名字。
路由即视图函数
客户端(例如 Web 浏览器)把请求发送给 Web 服务器, Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个 URL 请求运行哪些代码,所以保存了一个 URL 到Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。
在 Flask 程序中定义路由的最简便方式,是使用程序实例提供的__app.route 修饰器__,把修饰的函数注册为路由。
@app.route('/')
def index():
return '<h1>hello world!</h1>'
前例把 index() 函数注册为__程序根地址的处理程序__。如果部署程序的服务器域名为 www.example.com,在浏览器中访问 http://www.example.com 后, 会触发服务器执行 index() 函数。这个函数的返回值称为__响应__,是客户端接收到的内容。如果客户端是 Web 浏览器, 响应就是显示给用户查看的文档。
定义路由中的一部分动态名字
@app.route('/user/<name>') #指向user/name的位置,即url
def user(name)
return '<h1>hello,%s!</h1>' % name
- 尖括号中的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调用视图函数时, Flask 会将动态部分作为参数传入函数。在这个视图函数中,参数用于生成针对个人的欢迎消息,
- 路由中的动态部分默认使用字符串,不过也可使用类型定义。例如,路由 /user/int:id只会匹配动态片段 id 为整数的 URL。 Flask 支持在路由中使用 int、 float 和 path 类型。path 类型也是字符串,但不把斜线视作分隔符,而将其当作动态片段的一部分。
启动服务器
程序实例用 run 方法启动 Flask 集成的开发 Web 服务器:
if __name == '__main__':
app.run(debug=True)
有一些选项参数可被 app.run() 函数接受用于设置 Web 服务器的操作模式。在开发过程中启用调试模式会带来一些便利, 比如说激活调试器和重载程序。要想启用调试模式, 我们可以把 debug 参数设为 True。
第一个网站
新建hello.py程序,我们将前面讲的三部分写进程序中。
from flask import Flask
app = Flask(__name__)
@app.route(/)
def index():
return '<h1>hello world!</h1>'
if __name__ == '__main__':
app.run(debug=True)
运行程序
* Serving Flask app "helloworld" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 109-618-885
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
复制网站,在浏览器打开