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

来源:互联网 发布:苹果最新软件 编辑:程序博客网 时间:2024/06/01 23:52

今天学习了一下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'] = Truedb = 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,Userimport pymysqldb.create_all()#创建相应的表#user_Susan = User(username = 'Susan',email = '6666663@qq.com')#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只能处理等值的语句.

0 0
原创粉丝点击