flask sqlalchemy(一)

参考它的文档,创建如下示例:

encoding:utf8
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

a = os.path.dirname(__file__)
basedir = os.path.abspath(os.path.dirname(__file__))#获取当前文件的目录,用以存放data.sqlite文件
app = Flask(__name__)
db = SQLAlchemy(app) #初始化
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')#配置文件储存目录
class User(db.Model):
    __tablename__ = 'users'#表名
    id = db.Column(db.Integer,primary_key=True)#id行
    username = db.Column(db.String(80),unique=True)#username行
    email = db.Column(db.String(120),unique=True)
    def __init__(self,username,email):
        #经过测试,初始化函数可以不要,继承的db.Model类会自动帮你创建
        self.username = username
        self.email = email
    def __repr__(self):
        #返回一个官方的说明类的字符(相当于给str加引号)
        return '<User %r>' % self.username

在shell环境中操作数据库:

from ceshi import db
from ceshi import User
db.create_all() #执行这一句之后会有data.sqlite文件生成
wsj = User(username=’wsj’,email=’example@aa.com’)#根据模型创建一个实例,这时候和数据库没有任何关系。
aaa = User(username=’aaa’,email=’aaa@aaa.com’)
db.session.add(wsj)#将数据放到session里,和git中的暂存区相似
db.session.add(aaa)
db.session.commit()#存入内存,相当于git commit -m

至此,已经完成了数据的存贮,怎么读取呢?

>>> from ceshi import db
>>> from ceshi import User
#模型是必须导入的,我们是通过模型完成和数据库的交互
>>> db.create_all()
>>> User.query.all()
#最简单的一句查询语句,其他道理和这个一样
>>> a = User.query.all()
>>> a
[<ceshi.User object at 0x0000000003BE0DD8>, <ceshi.User object at 0x0000000003BE0E48>]
#为什么显示的是内存地址,因为lazy参数的原因(原理:因为IO的速度比较慢并且占用运行内存,所以它默认在你查询的时候返回的是内存地址,当你需要读取数据的时候它才进行读取,这个可以根据lazy的参数改变)
>>> a[1]
<ceshi.User object at 0x0000000003BE0E48>
>>> a[1].username
#通过属性的形式读取数据
u'aaa'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值