diff --git a/mainapp/__init__.py b/mainapp/__init__.py index f05a0d7692a954016e9dee95e927e625b87363d9..44a82fab66eb5f55925a48d841a9a54fc079cae1 100644 --- a/mainapp/__init__.py +++ b/mainapp/__init__.py @@ -2,8 +2,11 @@ from flask import Flask from flask_session import Session import settings +from models import db + app=Flask(__name__) app.config.from_object(settings.Dev) se=Session() -se.init_app(app) \ No newline at end of file +se.init_app(app) +db.init_app(app) diff --git a/mainapp/__pycache__/__init__.cpython-37.pyc b/mainapp/__pycache__/__init__.cpython-37.pyc index 1b7f815041515efc2ff82998acb5fa0d491f642a..975d564962a4a5305177cef2bcd18797474da895 100644 Binary files a/mainapp/__pycache__/__init__.cpython-37.pyc and b/mainapp/__pycache__/__init__.cpython-37.pyc differ diff --git a/manage.py b/manage.py index 51c090e39e528f442c77b697d1b14cb33103a84f..12a3c7963b0830f79bf0eecddc81960336fbc612 100644 --- a/manage.py +++ b/manage.py @@ -1,8 +1,6 @@ from mainapp import app from mainapp.views import user_view -# from flask_script import Manager -from models import db from flask import render_template @app.errorhandler(404) @@ -13,8 +11,6 @@ def notFound(error): if __name__ == '__main__': # 注册蓝图路由 app.register_blueprint(user_view.blue,url_prefix='/user') - db.init_app(app) - # manager=Manager(app) - # manager.run() + app.run(host='localhost',port=5000,debug=True) diff --git a/models/__pycache__/user_model.cpython-37.pyc b/models/__pycache__/user_model.cpython-37.pyc index 99a142b01892bd8a53051d03492b328a6b9256c4..a3565d97a01f59a705dc5ab5dda6f8e04cc24289 100644 Binary files a/models/__pycache__/user_model.cpython-37.pyc and b/models/__pycache__/user_model.cpython-37.pyc differ diff --git a/models/user_model.py b/models/user_model.py index b3928f8b5b56375bb3fdac25ad43153b7f6dfb33..54a1754128a292cef6c2e15c7e087d46326a214e 100644 --- a/models/user_model.py +++ b/models/user_model.py @@ -1,11 +1,41 @@ from models import db - +# 用户-角色多对多表 +user_role = db.Table('user_role', + db.Column('user_id',db.Integer,db.ForeignKey('user_model.id')), + db.Column('role_id',db.Integer,db.ForeignKey('role.id'))) class UserModel(db.Model): + #主键 + id = db.Column(db.Integer,primary_key=True,autoincrement=True) + #普通字段 + name=db.Column(db.String(30),nullable=False,comment='姓名') + auth_key = db.Column(db.String(100),nullable=False,comment='密码') + phone=db.Column(db.String(11),unique=True,comment='电话') + + #多对多索引关系 + roles=db.relationship('Role',secondary=user_role,backref='users') + + + + +# 角色模型 +class Role(db.Model): + #主键 id = db.Column(db.Integer,primary_key=True,autoincrement=True) - name=db.Column(db.String(30),nullable=False) - auth_key = db.Column(db.String(100),nullable=False) - phone=db.Column(db.String(11),unique=True) + #普通字段 + name=db.Column(db.String(30),nullable=False,comment='角色名称') +#用户的卡包模型 +class CardModel(db.Model): + #主键 + id = db.Column(db.Integer,primary_key=True,autoincrement=True) + #普通字段 + publisher=db.Column(db.String(30),nullable=False,comment='发行商') + number=db.Column(db.String(40),nullable=False,comment='卡号') + money=db.Column(db.Float,nullable=False,comment='余额',default=0) + #外键 + user_id=db.Column(db.Integer,db.ForeignKey('user_model.id'),nullable=True,comment='用户的id') + #模型的反向引用 + user=db.relationship('UserModel',backref=db.backref('cards',lazy=True)) \ No newline at end of file diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/test/modeltest.py b/test/modeltest.py new file mode 100644 index 0000000000000000000000000000000000000000..0da2cb5523405a1e11cb843cba58f70eccd41b77 --- /dev/null +++ b/test/modeltest.py @@ -0,0 +1,144 @@ +from unittest import TestCase +from mainapp import app +from models import db +from models.user_model import UserModel, CardModel, Role + + +class TestUser(TestCase): + def test_add(self): + app.app_context().push() + user=UserModel() + user.name='li' + user.auth_key='dsadas' + user.phone='31231233131' + db.session.add(user) + print(user.name) + db.session.commit() + def test_waijianguanxi(self): + app.app_context().push() + user=UserModel.query.get(1) + print(user.name) + print(user.cards) + card=CardModel() + card.number='131230293023903902390923021' + card.money=0 + card.publisher='健身房' + db.session.add(card) + user.cards.append(card) + db.session.commit() + def test_addmany(self): + app.app_context().push() + li=[] + for i in range(10): + user=UserModel() + user.phone='123123213'+str(i) + user.name='dsd'+str(i) + user.auth_key='dsafafjiaj'+str(i) + li.append(user) + db.session.add_all(li) + db.session.commit() + + def test_query1(self): + app.app_context().push() + + user=UserModel.query.get(1) + print(user.name) + + # user2=UserModel.query.filter(user.name==UserModel.name.like('dsd%')) + user2=UserModel.query.filter(UserModel.name.like('dsd%')) + # print(user2[0].name) + for i in user2: + print(i.id,i.name) + + + def test_query2(self): + app.app_context().push() + user=db.session.query(UserModel).all() + for i in user: + print(i.name,i.id) + + user=db.session.query(UserModel.name,UserModel.phone).order_by(UserModel.phone).limit(3) + for i in user: + print(i.name,i.phone) + + + def test_update(self): + + app.app_context().push() + + user=UserModel.query.get(1) + user.name='AAA' + user.phone='213231312' + user.auth_key='asdsdjasidnio' + db.session.commit() + def testremove(self): + + app.app_context().push() + + user=UserModel.query.get(2) + print(user.name,user.phone) + db.session.delete(user) + db.session.commit() + + + #N:M + + def test_addmodel2(self): + app.app_context().push() + user=UserModel.query.get(1) + role=Role() + role.name='超级管理员' + db.session.add(role) + user.roles.append(role) + db.session.commit() + + def test_query(self): + app.app_context().push() + user=UserModel.query.get(1) + print(user.roles) + + role=Role.query.all()[0] + print(role.users) + + def test_update2(self): + app.app_context().push() + + user=UserModel.query.get(1) + user.roles[0].name='普通管理员' + db.session.commit() + + + def test_del2(self): + app.app_context().push() + role=Role() + role.name='实习工' + db.session.add(role) + users=UserModel.query.filter(UserModel.name.like('dsd%')) + for user in users: + user.roles.append(role) + db.session.commit() + + def test_del3(self): + app.app_context().push() + + roles=Role.query.filter(Role.name=='实习工').all() + for role in roles: + users=role.users + for user in users: + db.session.delete(user) + + db.session.commit() + + + + + + + + + + + + + +