python flask框架 数据库的使用

 

 1 #coding:utf8
 2 
 3 from flask import Flask
 4 from flask_sqlalchemy import SQLAlchemy
 5 
 6 app = Flask(__name__)
 7 
 8 # 设置链接数据库的url
 9 app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:mysql@127.0.0.1:3306/flask'
10 
11 # 每次请求结束后自动提交数据
12 app.config['SQLALCHEMY_COMMIT_ON_TEAMDOWN'] = True
13 
14 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
15 
16 # 查询时会显示原始的sql语句
17 app.config['SQLALCHEMY_ECHO'] = True
18 
19 # 注册数据库
20 db = SQLAlchemy(app)
21 
22 
23 
24 
25 class Role(db.Model):
26     # 定义表名
27     __tablename__ = 'roles'
28     # 定义列对象
29     id = db.Column(db.Integer,primary_key=True)
30     name = db.Column(db.String(64),unique=True)
31 
32     # 关系字段 用于两个方向查
33     user = db.relationship('User',backref='rel')
34 
35     # repr() 方法现实一个可读字符串
36     def __repr__(self):
37         return str(self.name)
38 
39 
40 class User(db.Model):
41     __tablename__ = 'users'
42     id = db.Column(db.Integer,primary_key=True)
43     name = db.Column(db.String(64),unique=True,index=True)
44     email = db.Column(db.String(64),unique=True)
45     pswd = db.Column(db.String(64))
46     role_id = db.Column(db.Integer,db.ForeignKey("roles.id"))
47 
48     def __repr__(self):
49         return str(self.name)
50 
51 
52 if __name__ == '__main__':
53     db.drop_all()   # 删除表
54     db.create_all() # 创建表
55     ro1 = Role(name = 'admin')  # 创建对象
56     ro2 = Role(name = 'user' )
57     # 向数据库添加数据
58     db.session.add_all([ro1,ro2])
59     # 提交
60     # db.session.commit()
61 
62 
63     us1 = User(name='wang', email='wang@163.com', pswd='123456', role_id=ro1.id)
64     us2 = User(name='zhang', email='zhang@189.com', pswd='201512', role_id=ro2.id)
65     us3 = User(name='chen', email='chen@126.com', pswd='987654', role_id=ro2.id)
66     us4 = User(name='zhou', email='zhou@163.com', pswd='456789', role_id=ro1.id)
67     db.session.add_all([us1, us2, us3, us4])
68     db.session.commit()
69 
70 
71     app.run(debug=True)
72     

 

posted @ 2017-11-01 10:22  稀里糊涂林老冷  阅读(2075)  评论(0编辑  收藏  举报