zoukankan      html  css  js  c++  java
  • 1.ORM介绍,基本配置及通过ORM框架创建表

    1.介绍

    ORM全拼Object-Relation Mapping(对象-关系映射)

    作用:主要实现模型对象到关系数据库数据的映射

    通过ORM框架作为一个中间者或者是一个桥梁,开发者通过定义模型类,属性体现对象间的关系,通过调用模型对象的save(),Delete(),all(),get()方法,进行操作数据库,而不是使用原生的sql语句进行直接进行数据库操作。

    优点:

    只需要面向对象编程, 不需要面向数据库编写代码.

      对数据库的操作都转化成对类属性和方法的操作.

      不用编写各种数据库的sql语句.

    实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.

      不在关注用的是mysqloracle...等.

      通过简单的配置就可以轻松更换数据库, 而不需要修改代码

    缺点:

    相比较直接使用SQL语句操作数据库,有性能损失.

    根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失.

    2.Flask-SQLAlchemy安装及配置

    (1)安装flask-sqlalchemy

    pip install flask-sqlalchemy

    (2)如果连接的是mysql数据库,需要安装mysqldb

    pip install flask-mysqldb

    如果在Ubuntu中安装mysqldb框架失败解决方案:https://blog.csdn.net/qq_31903733/article/details/82999631

    (3)代码(创建表的代码)

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app=Flask(__name__)
    
    # 配置数据库连接地址
    app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@127.0.0.1:3306/rupeng"
    # 是否追踪数据库的修改
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
    
    # 初始化SQLAlchemy
    db=SQLAlchemy(app)
    
    class Role(db.Model):
        # 表名不指定,默认为类名小写
        __tablename__="UserInfo"
        id=db.Column(db.Integer,primary_key=True,autoincrement=True)
        name=db.Column(db.String(64),unique=True)
    
    @app.route("/")
    def index():
        return "index"
    
    if __name__ == '__main__':
        db.create_all()
        app.run(debug=True)

    数据库连接设置:

    在 Flask-SQLAlchemy 中,数据库使用URL指定,而且程序使用的数据库必须保存到Flask配置对象的 SQLALCHEMY_DATABASE_URI 键中

    app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@127.0.0.1:3306/rupeng"

     动态追踪修改设置,如果未设置指挥提示警告

    app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False

    查询时会显示原始SQL语句

    app.config['SQLALCHEMY_ECHO']=True

     

  • 相关阅读:
    JAVA中变量的初始化
    取得301转向后的地址
    history for html5
    php traits 介绍
    android 笔记
    C posix 笔记
    笔记
    C 常用库
    cocos2dx:利用CCSpriteBatchNode优化渲染效率
    C实现将指定秒数转化为时:分:秒格式
  • 原文地址:https://www.cnblogs.com/fjiqiang/p/10542926.html
Copyright © 2011-2022 走看看