美文网首页
Flask摆弄记录(3)-操作数据库

Flask摆弄记录(3)-操作数据库

作者: chan2017 | 来源:发表于2017-08-31 17:42 被阅读28次

    连接和操作数据库的方法


    • 使用数据库驱动直接连接,我使用的oralce数据库
      做一个应用或者建站总是要使用不同的数据库或者其他方式来存贮我们的数据。
      首先要先下载python中支持连接oralce的包cx_Oracle,可以下载安装。

      cx_Oracle下载

      或者直接在cmd使用命令

      pip install cx_Oracle xxxxxx # xxxx是你的版本号
      

      1.要注意的是不同版本的oralce数据库使用的包的版本是不同的
      2.windows系统下可能要你先安装C++环境
      安装完成后,创建一个文件,简单测试一下。(创建一个database_link.py)

      import cx_Oracle
      
      conn = cx_Oracle.connect('dw_hos/dw_hos@localhost/orcl')
      
      c = conn.cursor()
      
      x = c.execute('select sysdate from dual')
      
      rows = x.fetchone()
      
      c.close()
      
      conn.close()
      
      print(rows)
      

    在控制台就可以看到查询回来的数据库时间了。

    link的方式增删查改都是使用的SQL语句,然后创建oralce的cursor来执行,执行后关闭。

    • 使用Flask-SQLAlchemy管理。

      Flask-SQLAlchemy官网
      Flask-SQLAlchemy文档中文翻译

      首先给出flask各类数据库的连接字符串格式。格式如下

      dialect+driver://username:password@host:port/database
      

      再举出几个常用的例子,其他的可以在官方文档中查阅:

      mysql://scott:tiger@localhost/mydatabase # MYSQL
      oracle://scott:tiger@127.0.0.1:1521/sidname # ORACLE
      sqlite:////absolute/path/to/foo.db # SQLLITE
      

      这里我用的是oracle数据库:
      创建一个简单的demo来运行一下(创建一个database_orm.py):

      from flask import Flask
      from flask.ext.sqlalchemy import SQLAlchemy
      
      app = Flask(__name__)
      app.config['SQLALCHEMY_DATABASE_URI'] = 'oracle://dw_hos:dw_hos@localhost:1521/orcl'
      db = SQLAlchemy(app)
      
      # 下面是数据模型的声明
      class User(db.Model):
      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
      

      从python shell中进入db对象并调用SQLAlchemy.create_all() 方法来创建表和数据库:

      >>> from database_orm import db
      >>> db.create_all()
      

      这时候是有了数据表格了,我们创建一些对象(插入一些数据)

      >>> from yourapplication import User
      >>> admin = User('admin', 'admin@example.com')
      >>> guest = User('guest', 'guest@example.com')
      

      这时候还没插入数据,我们要将之插入数据库

      >>> db.session.add(admin)
      >>> db.session.add(guest)
      >>> db.session.commit()
      

      查询也是非常简单的

      >>> users = User.query.all()
      [<User u'admin'>, <User u'guest'>]
      >>> admin = User.query.filter_by(username='admin').first()
      <User u'admin'>
      

    以上就是两种对数据库连接和操作的方式。

    相关文章

      网友评论

          本文标题:Flask摆弄记录(3)-操作数据库

          本文链接:https://www.haomeiwen.com/subject/ddxcjxtx.html