对于重要的Web应用,大多数人都不会直接为其编写CGI脚本, 而是选择使用Web框架,因为它会代替完成很多繁重的工作。 这样的框架有很多,后面将提及其中的几个, 但现在要将注意力放在既简单又有用的Flask(http://flask.pocoo.org )上。 使用pip很容易安装这个框架。
pip install flask
假设编写了一个计算幂的函数。
def powers(n=10):
return ', '.join(str(2**i) for i in range(n))
from flask import Flask
app = Flask(__name__)
@app.route('/')
def powers(n=10):
return ', '.join(str(2**i) for i in range(n))
powers(n=10)
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[3], line 1 ----> 1 from flask import Flask 2 app = Flask(__name__) 4 @app.route('/') 5 def powers(n=10): ModuleNotFoundError: No module named 'flask'
如果这个脚本名为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/
Flask还有很多其他的功能,其文档也很容易理解。 如果要尝试简单的服务器端Web应用开发, 建议看看这些文档。
还有很多其他的Web框架,大小皆有。有的晦涩难懂,有些定期召开推广会议。 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 |