- WSGI 工具箱采用 Werkzeug(路由模块) ,模板引擎则使用 Jinja2
,Flask框架的核心就是Werkzeug和Jinja2 - Flask应该是最灵活的框架之一
- Flask扩展包:
● Flask-SQLalchemy:操作数据库;
● Flask-migrate:管理迁移数据库;
● Flask-Mail:邮件;
● Flask-WTF:表单;
● Flask-script:插入脚本;
● Flask-Login:认证用户状态;
● Flask-RESTful:开发REST API的工具;
● Flask-Bootstrap:集成前端Twitter Bootstrap框架;
● Flask-Moment:本地化日期和时间;
1.常用的命令行语句
pip install -r requirements.txt #安装依赖包
pip freeze > requirements.txt #生成依赖包
app.secret_key = 'aaaa'# set the secret key
#数据库
flask db update
flask db migrate
python app.py db init#这个命令会创建migrations文件夹
python app.py db migrate -m 'initial migration'#创建自动迁移脚本
python database.py db upgrade#更新数据库
#回退数据库
python app.py db history查看历史版本的具体版本号
python app.py db downgrade 版本号
flask run#运行
set FLASK_APP=app.py
2.特殊模块
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config.update(
DEBUG = True,
MAIL_SERVER='smtp.qq.com',
MAIL_PROT=465,
MAIL_USE_TLS = True,
MAIL_USERNAME = '2632499409@qq.com',
MAIL_PASSWORD = 'aaa',
)
mail = Mail(app)
@app.route('/')
def index():
msg = Message("This is a test ",sender='2632499409@qq.com', recipients=['shengjun@itcast.cn','2632499409@qq.com'])
msg.body = "Flask test mail"
mail.send(msg)
print ("Mail sent")
return "Sent Succeed"
if __name__ == "__main__":
app.run()
什么是蓝图?
蓝图:用于实现单个应用的视图、模板、静态文件的集合。
蓝图就是模块化处理的类。
简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能。 在Flask中,使用蓝图可以帮助我们实现模块化应用的功能。
蓝图的使用:
一、创建蓝图对象。
Blueprint必须指定两个参数,admin表示蓝图的名称,__name__表示蓝图所在模块
admin = Blueprint('admin',__name__)
二、注册蓝图路由。
@admin.route('/')
def admin_index():
return 'admin_index'
三、在程序实例中注册该蓝图。
app.register_blueprint(admin,url_prefix='/admin')
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
@app.route('/list')
def list():
return 'list'
@app.route('/detail')
def detail():
return 'detail'
@app.route('/')
def admin_home():
return 'admin_home'
@app.route('/new')
def new():
return 'new'
@app.route('/edit')
def edit():
return 'edit'
from flask import Flask
from admin import *
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
@app.route('/list')
def list():
return 'list'
@app.route('/detail')
def detail():
return 'detail'
if __name__ == '__main__':
app.run()
from app import app
@app.route('/')
def admin_home():
return 'admin_home'
@app.route('/new')
def new():
return 'new'
@app.route('/edit')
def edit():
return 'edit'
不负有心人
Original: https://blog.csdn.net/joyyi9/article/details/122393129
Author: joyyi9
Title: Python_Flask系列_1.基础
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/747539/
转载文章受原作者版权保护。转载请注明原作者出处!