flask笔记7:图书案例、Migrate和Mail

Table of Contents

 

图书案例

Migrate和Mail

01 migrate使用简介

02 migrate使用

03 mail使用


图书案例

之前看过一些flask项目了,这个没什么新鲜的,就简单浏览了一下复习。

如果前端发送的请求体数据是json格式,后端get_json会解析成字典(需要前端设置contentType)

req_dict=request.get_json()

前端发送json字符串:

var req_json=JSON.stringify(data)

$.ajax({

            url:"/delete_book",

            type:"post",//请求方式

            data:req_json,//向后端发送

            contentType:"application/json",//向后端发送

            dataType:"json",//后端返回

            success:function(resp){

                if(resp.code==0){

                    location.href="/"

                }

            }

        })

后端向前端返回json:

from flask import jsonify

return jsonify(code=0,message="OK")

Migrate和Mail

01 migrate使用简介

Migrate可将模型类的修改同步到数据库

pip install flask-migrate

Migrate依赖于flask-script

from flask_script import Shell,Manager

Migrate为执行者,MigrateCommand为执行命令

from flask_migrate import Migrate,MigrateCommand

使用Manager启动

app = Flask(__name__)

manager=Manager(app)

Migrate会接收db配置,并把自己塞入app中

migrate=Migrate(app,db)

添加MigrateCommand交给manager,分类为db

manager.add_command('db',MigrateCommand)

启动时:

if __name__ == '__main__':

       manager.run()

02 migrate使用

from flask_script import Shell,Manager

from flask_migrate import Migrate,MigrateCommand

class Config(object):

       SQLALCHEMY_DATABASE_URL="mysql://root:mysql@127.0.0.1:3306/database_9"

       SQLALCHEMY_TRACK_MODIFICATIONS=True

 

app.config.from_object(Config)

db=SQLAlchemy(app)

manager=Manager(app)

migrate=Migrate(app,db)

manager.add_command('db',MigrateCommand)

if __name__ == '__main__':

       manager.run()

启动时执行数据库命令:会生成migrations文件夹

python author_book.py db init

添加新字段:

class Author(db.Model):

       __tablename__="authors"

       id=db.Column(db.Integer,primary_key=True)

       name=db.Column(db.String(64),unique=True)

       books = db.relationship("Book",backref="author")

       email=db.Column(db.String(128),unique=True)

生成迁移文件:

python author_book.py db migrate

使之在数据库生效:

python author_book.py db upgrade

对这次迁移做备注:

python author_book.py db migrate -m 'add email'

查看历史操作与状态码:

python author_book.py db history

回滚到该状态码状态:

python author_book.py db downgrade ee602d992e79

03 mail使用

基于python内置的smtplib

在邮箱服务中开启SMTP(用来发邮件),生成授权码urspjdbdvtvrbjia

在flask配置:

from flask_mail import Mail,Message

app = Flask(__name__)

字典添加多个键值对:

app.config.update(

       MAIL_SERVER='smtp.qq.com',

       MAIL_PORT=465,

       MAIL_USERNAME='2753***@qq.com',

       MAIL_PASSWORD='urspjdbdvtvrbjia'

)

使用Message类的对象发送:

msg=Message("test",sender='2753***@qq.com',recipients=['laugoon@outlook.com'])

msg.body="test"

mail.send(msg)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值