15.3 使用 Web 框架
假设你编写了一个计算幂的函数。
def powers(n=10):
return ', '.join(str(2**i) for i in range(n))
而且想让每个人都能使用它!要使用Flask来实现这个目标,首先使用合适的名称实例化Flask类,并将这个函数的URL路径告诉它。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def powers(n=10):
return ', '.join(str(2**i) for i in range(n))
如果这个脚本名为powers.py,就可像下面这样让Flask运行它(这里假设是在UNIX风格的shell中):
$ export FLASK_APP=powers.py
$ flask run
* Serving Flask app "powers"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
最后两行是Flask的输出。如果你在浏览器中输入上面的URL,将看到函数powers返回的字符串。你也可给这个函数指定更具体的路径。例如,如果使用route('/powers')而不是('/'),这个函数将位于http://127.0.0.1:5000/powers。这样,你就可设置多个函数,每个函数的URL各不相同。
你甚至能向函数提供参数。要指定参数,可使用尖括号,例如'/powers/'。这样,斜杠后面的内容将作为关键字参数n的值。但这样提供的是一个字符串,而这里需要的是一个整数。为执行转换,可使用route('/powers/')。这样修改后,如果重新启动Flask,并访问URL
http://127.0.0.1:5000/powers/3,将得到输出1, 2, 4。
Flask还有很多其他的功能,其文档也很容易理解。如果要尝试简单的服务器端Web应用开发,建议你看看这些文档。
其他 Web 应用框架
还有很多其他的Web框架,大小皆有。有的晦涩难懂,有些定期召开推广会议。表15-2列出了几个流行的框架,更完整的清单请参阅Python网页(https://wiki.python.org/moin/WebFrameworks)。
表15-2 Python Web应用框架
名 称 网 站
Django https://djangoproject.com
TurboGears http://turbogears.org
web2py http://web2py.com
Grok https://pypi.python.org/pypi/grok
Zope2 https://pypi.python.org/pypi/Zope2
Pyramid https://trypyramid.com
领取专属 10元无门槛券
私享最新 技术干货