Python_Flask系列_1.基础

前言

一、Flask是什么?

  • 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.豆约翰flask系列教程
2.flask中文教程
3.flask_W3cschool
4.flask_语雀

二、Flask有关知识

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():
 # sender 发送方,recipients 接收方列表
    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'
# 文件app.py
from flask import Flask
# 导入admin中的内容
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()
    
    
# 文件admin.py    
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'

总结

不负有心人

posted @ 2022-01-15 10:51  cactus9  阅读(28)  评论(0编辑  收藏  举报