1.flask是什么
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其WSGI工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD授权。它也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
2.路由
所谓 路由,即 URL 绑定;
Flask 使用 route()
装饰器把一个函数绑于一个URL上, 如下:
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'Hello ,world!'
app.run()
于是,我们便可以在本地通过localhost:xxxxxxxxxxxxx/hello,来获取到hello函数中的内容。
同时,我们还可以使用add_url_rule()
方法来实现路由的注册,
from flask import Flask
app = Flask(__name__)
#@app.route('/hello')
def hello():
return 'Hello ,world!'
app.add_url_rule('/hello', viewfunc=hello)
app.run()
其实add_url_rule是@app.route()装饰器内部封装的一个方法,两者的本质是相同的。
3.blueprint--蓝图
为了在一个或多个应用中,使应用模块化并且支持常用方案, Flask 引入了 蓝图 概念。蓝图可以极大地简化大型应用并为扩展提供集中的注册入口。
接下来则是蓝图的使用
from flask import Flask
def create_app():
app = Flask(__name__)
register_blueprint(app) # 完成蓝图注册
init_db(app)
return app
def register_blueprint(app): # 注册蓝图
from app.api.v1 import v1
from app.api.v1.img import img
app.register_blueprint(v1, url_prefix='/api/v1') # url_prefix添加了这个参数后
# 所有蓝图路由前面机会自动添加这个参数
# PS:这个参数必须是一个字符串,而且要以' / '开头
app.register_blueprint(img, url_prefix='/api/v1/img')
之后我们就可以在另一个文件中将它初始化
from flask import Blueprint # 蓝图引入
img = Blueprint('img', __name__) # 蓝图初始化
3.flask与数据库
通常我们会在app文件下建一个model文件来存放
可以在初始化的文件下写入
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() # 实例化
数据库模型构建如下
from sqlalchemy import Column, Integer, String
from app.model import db
class SQL(db.Model):
uid = Column(Integer, primary_key=True, autoincrement=True)
# 插入属性
def __init__(self, uid):
self.uid = uid
这样,我们就构建了一个简单的数据库模型。
网友评论