flask之数据库的使用

安装flask_sqlalchemy

进入cmd中执行命令:pip install flask_sqlalchemy

如果再这个过程中出现了错误
进入https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载对应python版本号的twisted

然后执行:pip install 下载的twisted的路径

成功后

再执行:pip install flask_sqlalchemy

flask_sqlalchemy 数据库的使用

1.使用:
1
2
3
4
5
6
7
8
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:@127.0.0.1/flask_sql_demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
db=SQLAlchemy(app)
if __name__=="__main__":
db.drop_all()
db.creat_all()
2.创建表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
class Role(db.Model):
#定义表名
__tablename__="roles"
#定义字段
id=db.Column(db.Integer,primary_key=True) #第一个参数是类型,第二个primary_key是是否设置为主键
name=db.Column(db.String(16),unique=True)
#与表相关联(relationship)
#User 是模型的名称 backref表示的是role给User使用的属性
users=db.relationship('User',backref="role")
class User(db.Model):
__table__="users"
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String(16),unique=False)
#ForeignKey表示的是从外界表中查找的属性
role_id=db.Column(db.Integer,db.ForeignKey('role.id'))
```
3.增删改查
``` bash
①添加数据(分别在roles与users中添加数据)
role1=Role(name="admin")
db.session.add(role)
db.session.commit()
role2=Role(name="public")
db.session.add(role2)
db.session.commit()
如果感觉上面的方法繁琐可以直接使用
role1=Role(name="admin")
role2=Role(name="public")]
db.session.add_all([role1,role2])
db.session.commit()
user1=User(name="nuo",role_id=role1.id)
user2=User(name="cheng",role_id=role2.id)
db.session.add_all([user1,user2])
db.session.commit()
②修改数据(将user表中的name改变)
user.name='ying'
db.session.commit()
③删除数据
db.session.delect(user)
db.session.commit()
④查询数据
查询表中的所有信息
user.query.all()
查询表中数据的数量
user.query.count()
查询表中第一条信息
user.query.first()
查询id=4的信息
user.query.get(4) #这里的get后的4表示默认主键为4的
user.query.filter(user.id==4).first()
user.query.filter(user.name=="nuo").all()
user.query.filter_by(id=4).first()
Fork me on GitHub