WEB 开发是现在程序必会的技能,因为大部分软件都以 Web 形式提供,及时制作后台开发,或者只做前台开发,也需要了解 Web 开发的概念和特点。
由于 Python 是解释性脚本语言,用来做 Web 开发非常适合,而且 Python 有上百中 Web 开发框架,以及成熟的模板技术,使得Web开发如虎添翼。今天借用 Flask 框架,快速学习一下 Python 的 Web 开发知识。
Flask 框架
Flask 的设计易于使用和扩展。它的初衷是为各种复杂的Web应用程序构建坚实的基础。可以自由地插入任何扩展。也可以自由构建自己的模块。Flask 适合各种项目。它对原型设计特别有用。Flask 依赖于两个外部库:Jinja2 模板引擎和 Werkzeug WSGI 工具包。
Flask 是最精致,功能最丰富的微框架之一。Flask 还很年轻,拥有蓬勃发展的社区,一流的扩展和漂亮的 API。Flask 具有快速模板,强大的 WSGI 功能,在 Web 应用程序和库级别的完整单元可测性,以及大量文档等优点。
选用 Flask 框架也是因为它方便入手,结构简单,零配置,是个学习 Python Web 开发的好工具。
安装 Flask
像其他模块一样,Flask 的安装很简单,下面通过 pip 包管理器来安装
pip install flask
检查一下是否安装正确,在命令行下输入 python
进入命令行模式,
引入 flask
模块,回车
>>> import flask
>>>
如果没有错误提醒,就说明安装成功了
Hello world
下面写个最简单的Web应用 hello.py
from flask import Flask # 引入Flask模块
app = Flask(__name__) # 创建一个应用
@app.route('/')
def index(): # 定义根目录处理器
return '<h1>Hello World!</h1>'
if __name__ == '__main__':
app.run() # 启动服务
打开终端,跳转到 hello.py
文件所在的文件夹,进入 python 命令行模式,启动服务
>>> python hello.py
如果一起正常的话会有类似下面的反馈
* Serving Flask app "hello" (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: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
因为是通过
app.run()
启动的服务,所以会有个错误提示,提醒不能将此Web应用部署在生产环境中,可以暂时忽略
此时,打开浏览器,输入127.0.0.1:5000/ 或者 localhost:5000/, 就可以看到 Hello World! 欢迎字样。
路由
路由是 Web 开发中一个很重要的概念,用来将不同的请求,映射到响应的处理方法上,这个方法被称为视图函数。比如刚才的 Hello
应用,将根请求,映射到index
处理方法上,下面简单了解下Flask对路由的支持
Flask通过修饰器(和Java的注解类似)来建立路由映射关系的,已经看到修饰器是 app.rotue()
简单路由
如 访问 /hello
@app.route('/hello')
def hello():
return '