1.建立models_base文件
連接數據庫
import logging import ast import simplejson as json import time from flask_sqlalchemy import SQLAlchemy from flask import Flask from commons.entity import rds_mongo app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:1234@localhost:3306/flask_demo' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True db = SQLAlchemy(app) logger = logging.getLogger("platform")
2.建立數據庫
class UserInfo(DynamicDocument): # Columns __tablename__ = 'userinfo' uid = Column(String(64), primary_key=True) nick_name = Column(String(64)) sex = Column(String(64)) email = Column(String(64)) device_id = Column(String(100)) imei = Column(String(100)) coin_balance = Column(Integer()) # 金幣余額 real_name = Column(String(100)) # 真名 id_card = Column(String(100)) # 身份證號 create_time = Column(String(100)) # 創建時間 last_login_time = Column(String(100), nullable=True) # 創建時間 cash = Column(Float()) # # 現金賬戶 other_column = Column(Text(), nullable=True) def __init__(self, coin_balance=0, lx_login=1, lj_login=1, *args, **kwargs): super(UserInfo, self).__init__(*args, **kwargs) self.uid = uid_value_decorator(random.randint(0, 9)) self.coin_balance = coin_balance self.lx_login = lx_login # 連續登陸的天數 self.lj_login = lj_login # 累計登陸的天數
3.常用字段類型
常用列選項
關系選項
4.基本查詢
# 查詢所有 def checkAll(): user =UserInfo.query.all() print(user) # 修改數據 def update(name, pwd): user = User.query.filter(User.name == name).first() if user is not None: user.thrust = pwd db.session.commit() print('修改 用戶 %s ,密碼為:%s' % (name, pwd)) else: print('用戶不存在') # 刪除數據 def delete(name, pwd): user = User.query.filter(User.name == name, User.thrust == pwd).first() if user is not None: db.session.delete(user) db.session.commit() print('刪除 用戶 %s ,密碼為:%s' % (name, pwd)) else: print('用戶不存在,或密碼不正確') from models import User #添加數據 user=UserInfo(1,'xiaoxiao','ss123') user.save() #按條件查詢 result=User.query.filter(User.id>5).all() result=User.query.filter(User.username=='xiaoxiao').all() #返回結果為一個列表,列表內元素為User對象,all()為返回查詢的所有結果,first()返回查詢結果中的第一個 result=User.query.filter(User.username.startswith('x')) #starstwith以什么開頭 #獲取查詢結果的總數量 count=User.query.filter(User.id>5).count() #獲取查詢結果中指定的數據 result=User.query.filter(User.id>5).all()[1:3] #查詢結果以列表返回,所以可以根據列表的切片操作來獲取對應數據 #多條件查詢 #sqlalchemy內置了多條件查詢方法 : and_(), or()_ ,not_() result=User.query.filter(and_(User.id>5,User.username.startswith('x'))) #查詢id大於5並且用戶名以x開頭的 result=User.query.filter(or_(User.id>5,User.username.startswith('x'))) #查詢id大於5或者用戶名以x開頭的 result=User.query.filter(and_(User.username.startswith('x'))) #查詢用戶名不是以x開頭的 #修改 result=User.query.filter(User.username=='xiaoxiao').all()[0] result.password='000000' db.session.commit() #刪除 result=User.query.filter(User.username=='xiaoxiao').all()[0] db.session.delete(result) db.session.commit()