flask框架:Python 3.5下使用 flask_SqlAlchemy和mysql

今天学习了一下flask_SqlAlschemy的使用,它是基于flask和SqlClchemy的对数据库进行操作的一个关系型数据库框架.内置了orm.

首先是定义模型:,注意要怎么才能配置好数据库,很多教程上都是sqlLite的,而我们需要的则是mysql,具体配置如下,因为MySQlDB不支持python3了,所以我用pymysql,这是一个纯python写的支持mysql操作的第三方库.

因为这个框架帮我们实现了orm,所以我没可以按照数据库表的结构来定义相应的接口类.

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:19931218@localhost/test'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

****************************************************************

[0]创建表:

注意区分直接用SQLAlchemy和flask_SQLAlchemy的查询,它们是由一点区别的.

from sql_learn import db,User
import pymysql
db.create_all()#创建相应的表
#user_Susan = User(username = 'Susan',email = '[email protected]')
#db.session.add(user_Susan)
#user_Susan.username = 'Susan_2'
#db.session.add(user_Susan)
#db.session.commit() #print(db.session.query(User,User.id,User.username).all())#这里返回的是一个元组,每一个对象还是一个元组,包含User类,id,username #print(User.query.filter_by(username = 'Susan').all())#flask的查询对象返回User的对象 user = User.query.filter_by(username = 'Susan').first() user.username = 'Susan_wifi' db.session.add(user) db.session.commit()

另外filter的过滤操作有很多,具体要看文档,我简单介绍下用过的两个例子:分别是filter(过滤器)和filter_by(等值过滤器)

print(User.query.filter(User.username > 'Susan_2').first())
print(User.query.filter_by(username = 'Susan_2').first())

注意到区别了吗,filter_by只能处理等值的语句.

你可能感兴趣的:(flask框架:Python 3.5下使用 flask_SqlAlchemy和mysql)