(二)flask框架快速入门程序之使用flask-SQLAlchemy管理mysql数据库

flask-SQLAlchemy的官方中文文档
http://www.pythondoc.com/flask-sqlalchemy/quickstart.html
不过这个文档里用的数据库是SQLite

1.新建一个flask项目
在这里插入图片描述
2.在pycharm中装上flask-SQLAlchemy和pymysql,python3已经不支持mysql了,所以我这里用了pymysql.(flask-mysqldb感觉不是特别好用,就没用)

1548167622133

3.项目结构

1548173111032

4.sqlalchemy列常见参数

选择项说明
autoincrementTrue 是否自增
primary_keyTrue 是否是主键
indexETRUE 是否是索引
uniqueTrue 是否是唯一
nullableTrue 是否允许字段为空
default默认值

5.字段类型

类型名称python类型描述
Integerint常规整型,通常为32位
SmallIntegerint短整型,通常为16位
BigIntegerint或long精度不受限整型
Floatfloat浮点型
Numericdecimal定点数
Stringstr可变长度字符串
Textstr可变长度字符串,适合大量文本
Unicodeunicode可变长度Unicode字符串
Booleanbool布尔值
Datedatetime.date日期类型
Timedatetime.time时间类型
DateTimedatetime.datetime日期时间类型
Intervaldatetime.timedate时间间隔
Enumstr字符列表
PickleType任意Python对象自动Pickle序列化
LargeBinarystr二进制

6.app.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)
# 为SQLAlchemy设置地址,注意设置格式
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://账号:密码@地址:端口/数据库名'
# 设置为不可动态删除
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

db = SQLAlchemy(app)


# 建一个表对象进行数据库的处理
# 这里需要使用一个模型
class User(db.Model):
    __tablename__='users'
    id = db.Column(db.Integer, primary_key=True, unique=True, autoincrement=True)
    name = db.Column(db.String(80))

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return '<id : %r , User : %r>' % (self.id, self.name)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()


# 从数据库删除所有表
db.drop_all()
# 创建所有表
db.create_all()
# 插入操作1,插入单个数据
admin = User(name='admin')  # 创建一个叫admin的User
db.session.add(admin)  # 将该User添加到数据库
db.session.commit()  # 提交会话
# 插入操作2,插入多个数据
guest = User(name='guest')  # 创建一个叫guest的User
test = User(name='test')  # 创建一个叫test的User
db.session.add_all([guest, test])  # 将该这些对象添加到数据库
db.session.commit()  # 提交会话
# 删除操作
db.session.delete(admin)
db.session.commit()
# 查询操作
# 查询表内所有内容
res = User.query.all()
print("查询表内所有内容"+str(res))
# 只显示第一个
res = User.query.first()
print("只显示第一个"+str(res))
# 按照条件查询
res = User.query.filter_by(name='test').all()
print("按照条件查询"+str(res))
# 逻辑非
res = User.query.filter(User.name != 'test').all()
print('逻辑非'+str(res))
# 取反
from sqlalchemy import not_
res = User.query.filter(not_(User.name != 'test')).all()
print('取反'+str(res))
# 逻辑与
from sqlalchemy import and_
res = User.query.filter(and_(User.id == 3, User.name == 'test')).all()
print('与'+str(res))
# 逻辑或
from sqlalchemy import or_
res = User.query.filter(or_(User.name == 'guest', User.name == 'test')).all()
print('与'+str(res))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值