您的位置:首页 > 编程语言 > Python开发

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

2016-04-16 11:39 621 查看

今天学习了一下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


[b]****************************************************************[/b]

[0]创建表:

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

from sql_learn import db,User
import pymysql
db.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只能处理等值的语句.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: