flask的helloworld程序和所有的helloworld一样非常简单。
一、安装虚拟环境和flask
1.虚拟环境:python解释器的私有副本,在虚拟环境中可以安装私有的python包而不会影响到系统中安装的全局python解释器,通常会为每个项目创建一个虚拟环境。
①windows下可以使用python安装工具easy_install安装:
②以管理员权限打开命令行:easy_install virtualenv,安装后使用指令virtualenv --version,输出版本号表示安装成功:
③安装成功后就可以创建一个虚拟环境,可以新建一个空的项目文件夹flasky,在此目录下打开命令行(shift+右键,选择在此处打开命令行),然后使用指令virtualenv venv创建虚拟环境:
④安装成功后会发现flasky文件夹下多了一个虚拟环境文件夹venv,里面包含一些python私有包。虚拟环境使用前需要先激活,使用命令venv\Scripts\activate,发现虚拟环境路径已经添加进PATH中:
可以使用命令venv\Scripts\deactivate退出虚拟环境。
2.接下来把flask也安装到虚拟环境中,pip install flask:
可以import测试一下是否报错,无报错表示安装成功:
二、Helloworld
代码helloworld.py:
#coding:utf-8
from flask import Flask
app=Flask(__name__)
@app.route("/")
def index():
return "<h1>Hello World!</h1>"
@app.route("/user/<name>")
def user(name):
return "<h1>Hello,%s</h1>"%name
if __name__=="__main__":
app.run(debug=True,host="0.0.0.0",port=8000)
命令行运行python helloworld.py即可启动服务器,可以通过"http://127.0.0.1:8000"访问服务器。
一个Flask程序会创建一个程序实例app,Flask构造函数传入的__name__用于确定程序的根目录,用于获取相对于根目录的资源文件位置。
route修饰器,其作用是定义路由,建立URL地址和处理程序的映射。index()函数的返回值即是浏览器访问对应url后收到的响应。
这个例子还包含一个动态路由"/user/<name>",其中包含的<name>是可变部分,flask会将这部分作为参数传入参数,所以在视图函数中有name参数,可以针对个人生成不同的响应。参数默认是字符串,也可以指定类型如"/user/<int:id>"会匹配id为整数的url。"http://127.0.0.1:8000/user/Batman"响应如下:
app.run启动服务器,可以通过host和port指定服务器IP和端口号,如果不指定,默认为本机保留地址"127.0.0.1"和5000端口,那样不支持同网络中的其他设备访问。
-------------------------
文章参考了Miguel Grinberg的《Flask web开发》,最近学完了本书,打算写一点点学习总结。