VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • Flask-SQLAlchemy

ORM的好处:可以让我们操作数据库跟操作对象是一样的,非常方便,因为一个表就抽象成一个类,一条数据就抽象成该类的一个对象。

一、初始化

from flask_sqlalchemy import SQLAlchemy  
app = Flask(__name__)
app.config.from_config(config)
db = SQLAlchemy(app)

其中,config为配置文件

SQLALCHEMY_DATABASE_URI = ('mysql+pymysql://'+MYSQL['user']+':'+MYSQL['password']+'@'+MYSQL['host']+'/'+MYSQL['db'])
SQLALCHEMY_POOL_SIZE = 1
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = os.environ.get('SECRET_KEY') or '10086'

二、db对象产生之后,使用db对象创建模型与表的映射。

模型需要继承自db.Model,然后需要映射到表中的属性,必须写成db.Column的数据类型。
数据类型:
db.Integer代表的是整形.
db.String代表的是varchar,需要指定最长的长度.
db.Text代表的是text.
其他参数:
primary_key:代表的是将这个字段设置为主键。
autoincrement:代表的是这个主键为自增长的。
nullable:代表的是这个字段是否为空,默认可以为空,可以将这个值设置为False,在数据库中,这个值就不能为空了。
index:是否设置为索引

创建User类,作为博客用户。

class User(db.Model):
    __tablename__ = 'usertable' #如果不指定表名,会默认以这个类名的小写为表名
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32), index=True, unique=True)
    email = db.Column(db.String(255), index=True, unique=True)
    password = db.Column(db.String(32))
    permission = db.Column(db.Integer())
    accept_email = db.Column(db.Boolean(), default=False)
    register_time = db.Column(db.DateTime())
    def __repr__(self): # 方便查看打印输出结果
        return '<User {}>'.format(self.name)

    def set_password(self, password): # 生成密码
        self.password = generate_password_hash(password)

    def check_password(self, password): # 检查密码
        return check_password_hash(self.password, password)

三、增、删、改、查

#根据用户名查找.filter_by 表内部精确查询
 user = User.query.filter_by(name=username).first()
 
出处:https://www.cnblogs.com/leimu/p/13203261.html


相关教程