典型的框架应该具备以下几个功能:
1.管理路由
2.访问数据库;
3.管理回话和Cookies;
4.创建模板来显示HTML;
5.促进代码的重用。
几种Python主流的Web框架
Flask(是一个轻量级Web应用框架。)
Django Bottole Tornado
Flask依赖两个库Werkzeug和Jinja2,其中Werkzeug是一个WSGI(在Web应用和多种服务器之间的标准Python接口)工具集;Jinja2负责渲染模板。
第一步,使用Virtualenv先安装虚拟环境
pip install virtualenv
查看virtualenv版本
virtualenv --version
创建虚拟环境,cd进入virtualenv 目录
virtualenv venv
完成后,会生成一个全新的虚拟环境,其中有一个私有的Python解释器。
激活虚拟环境
venv\Scripts\activate
第二步 安装Flask
pip install flask
查看所有安装包
pip list --format columns
可以查看已经安装了Flask,且还有两个外部依赖库Werkzeug和Jinja2。
第三步 测试第一个Flask 程序
在venv同级目录下,创建一个hello.py文件。
from flask import Flask
'''
Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)
是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
'''
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello world!'
if __name__ == '__main__':
app.run()
静态文件
在包或者模块(即venv同级目录)所在的目录中创建一个名为static文件,将css和JavaScript文件放到此文件夹内。
url_for('static', filename = 'style.css')
模板
在包或者模块(即venv同级目录)所在的目录中创建一个名为templates文件,将html文件放到此文件夹内。
例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
@app.route('/')
def hello_world():
return render_template('index.html')
Flask提供的render_template()函数把“Jinja2”模板引擎集成到了程序中。render_template()函数的第一个参数是模板的文件名。随后的参数都是键值对,表示模板中变量对应的真实值。
调试模式(第一种方法)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(debug = True)
调试模式(第二种方法)
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.debug = True
app.run()