数据库

来源:互联网 发布:python和c语言 编辑:程序博客网 时间:2024/05/29 08:18

1、安装flask支持的数据库:

pip install Flask-SQLALchemy;

pip install flask-wtf 

粗心的宝宝们请把这两个都给装上哈!我第一次装的时候好像是大小写错了还是咋的(反正我的教材上面只让我安装上面那一个),一直报:No module named flask.ext.sqlalchemy


2、引入数据库文件

from flask.ext.sqlalchemy import SQLAlchemy   #我们用到的数据库文件
import os   #用于路径计算


3、数据库的基本配置

A、basedir=os.path.abspath(os.path.dirname(__file__))  #当前文件绝对路径

B、app=Flask(__name__)

C、app.config['SQLALCHEMY_DATABASE_URI'] =\

                'sqlite:///' + os.path.join(basedir, 'yang_xiaoru.sqlite')

D、app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

E、db = SQLAlchemy(app)  #通过这个db对象,就可以完成我们想要的数据库操作。

注释:虽然flask支持多种数据库,但是我们这里配置的是轻量级的sqlite数据库哈。


4、定义表结构

#Role表结构
class Role(db.Model):
  __tablename__ = "roles"
  id = db.Column(db.Integer, primary_key=True)
  name = db.Column(db.String(64), unique=True)
  def __repr__(self):
           return '<Role %r>' % self.name

#User表结构
class User(db.Model):
  __tablename__ = 'users'
  id = db.Column(db.Integer, primary_key=True)
  username = db.Column(db.String(64), unique=True, index=True)
  role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
  addr = db.Column(db.String(64))
  def __repr__(self):
            return '<User %r>' % self.username


4、数据的增删改查

数据插入

    创建对象:role=Role(name="yang")  #id是数字主键,会自动创建的

    添加对象:db.session.add(role) 或者 db.session.add_all(role1,role2.role3)

    执行操作:db.session.commit();


数据查询:

     A、无条件查询

     rs=Role.query.all()
     for t in rs:
           print t.id , t.name

     B、条件查询

     

      

       rs=Role.query.filter_by(id=1)
       for t in rs:
             print t.id,t.name

C、数据修改:

 rs=Role.query.filter_by(id=1)

  for t in rs:

          t.name=t.name+"haha"

         db.session.add(t)

  db.session.commit()

D 、数据删除:

   rs=Role.query.filter_by(id=3)

   for t in rs:

      db.session.delete(t)

   db.session.commit()






0 0
原创粉丝点击