SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中

1、使用SQLAlchemy去连接数据库:

  • 使用SQLALchemy去连接数据库,需要使用一些配置信息,然后将他们组合成满足条件的字符串:

    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'first_sqlalchemy'
    USERNAME = 'root'
    PASSWORD = '123' # dialect+driver://username:password@host:port/database
    DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)
  • 然后使用create_engine创建一个引擎engine

  • 然后再调用这个引擎的connect方法,就可以得到这个对象

  • 然后就可以通过这个对象对数据库进行操作了

    engine = create_engine(DB_URI)
    
    # 判断是否连接成功
    conn = engine.connect()
    result = conn.execute('select 1')
    print(result.fetchone())

2、ORM介绍:

  1. ORM:Object Relationship Mapping
  2. 大白话:对象模型与数据库表的映射

3、将ORM模型映射到数据库中:

  1. declarative_base根据engine创建一个ORM基类。

    from sqlalchemy.ext.declarative import declarative_base
    engine = create_engine(DB_URI)
    Base = declarative_base(engine)
  2. 用这个Base类作为基类来写自己的ORM类。要定义__tablename__类属性,来指定这个模型映射到数据库中的表名。

    class Person(Base):
    __tablename__ = 'person'
  3. 创建属性来映射到表中的字段,所有需要映射到表中的属性都应该为Column类型:

    class Person(Base):
    __tablename__ = 'person'
    # 在这个ORM模型中创建一些属性,来跟表中的字段进行一一映射。这些属性必须是sqlalchemy给我们提供好的数据类型。
    id = Column(Integer,primary_key=True,autoincrement=True)
    name = Column(String(50))
    age = Column(Integer)
  4. 使用Base.metadata.create_all()来将模型映射到数据库中。

    Base.metadata.create_all()
  5. 一旦使用Base.metadata.create_all()将模型映射到数据库中后,即使改变了模型的字段,也不会重新映射了。

SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中的更多相关文章

  1. SQLAlchemy(一):SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中

    SQLAlchemy01 /SQLAlchemy去连接数据库.ORM介绍.将ORM模型映射到数据库中 目录 SQLAlchemy01 /SQLAlchemy去连接数据库.ORM介绍.将ORM模型映射到 ...

  2. 【Flask】ORM模型创建及数据库映射

    1. 用 declarative_base 根据 engine 创建一个ORM基类.2. 用 Base 类作为基类来写自己的ORM类.要定义 __tablename__ 类属性,来指定这个模型映射到数 ...

  3. Django day03 orm介绍

    一:orm介绍 就是对象关系映射,python当中的类能够对应到数据库当中的某一个表(一个类对应一个表),一个类的对象对应着数据库中的一条记录,类当中的某个字段对应着数据库当中表的字段,字段拥有不同的 ...

  4. django的orm介绍以及静态文件介绍

    1 django中app的概念 大学:----------------- 项目 信息学院 ----------app01 物理学院-----------app02*强调:创建了app,要在配置文件中注 ...

  5. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  6. 01—EF开山篇,ORM介绍

    我是2014年接触的EF,用了一年多,感觉非常的方便,现在的公司没有使用,最近有朋友接了两个项目找我帮忙,都想使用EF,自己也有断时间没有使用,借着这个机会复习下.Entity Framework,简 ...

  7. 9-模型层及ORM介绍

    一.模型层 模型层负责和数据库之间进行通信     二.Django配置mysql数据库 1.Django默认的数据库是sqllite3,将其更改为mysql数据库需要进行对应配置 1.安装mysql ...

  8. 三十:数据库之定义ORM模型,并映射到数据库

    连接数据库操作 sqlalchemy映射步骤: 1.创建ORM模型,这个模型必须继承sqlalchemy提供的基类2.在这个ORM模型中创建一些属性,与表中的字段一一映射,这些属性必须是sqlalch ...

  9. Django(三) 模型:ORM框架、定义模型类并创建一个对应的数据库、配置Mysql数据库

    一.模型概述 https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial02/ https://www.runoob.com/django/dj ...

随机推荐

  1. Postgresql DB安装和使用问题记录

    2.选择语言后提示: Error: There has been an error. Please put SELinux in permissive mode and then run instal ...

  2. 解决Zabbix 5.0不能选择中文和中文乱码问题

    Zabbix web界面不能选择中文,提示: You are not able to choose some of the languages, because locales for them ar ...

  3. Spark原始码系列(五)分布式缓存

    问题导读:spark缓存是如何实现的?BlockManager与BlockManagerMaster的关系是什么? 这个persist方法是在RDD里面的,所以我们直接打开RDD这个类. def pe ...

  4. Activity学习笔记1

    Activity概述 简单的理解Activity就是指Android手机或平板的一个屏,类似Window的一个窗口,浏览器的一个页面. Activity的4种状态 Activity的生命周期 创建Ac ...

  5. PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

    前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数! 一.函数的声明与使用 1.函数名是标识符之一,只能有数字字母下划线,开头不能是数字. 函数名的命名,须 ...

  6. 使用IDEA+Gradle构建Spring5源码并调试(手把手教程全图解)

    一.前言   说一说我要写这篇文章的初衷吧,前段时间有小伙伴在微信群求教怎样构建spring源码,他在网上找了n个教程跟着后面花了两天时间都没构建好,正好我最近因工作原因从mac换成windows,开 ...

  7. SSL/TSL 原理( 握手原理和传输原理)

    本文参考<计算机网络 自顶向下方法> 目录 背景 通信的4要素 SSL/TLS in Detail 通讯保证 The Handshake Protocol 1. Initial Clien ...

  8. mysql性能优化总结(MySql避免重复插入记录的几种方法)

    如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了:(area,age,salary),(area,age).(area)三个索引,这被称为最佳左前缀特性.因此我们在创 ...

  9. Idea激活JRebel

    选择license激活 UUID 生成地址: http://www.uuid.online 激活地址 http://jrebel-license.jiweichengzhu.com/ UUID

  10. Springboot--元注解及自定义注解(表单验证)

    本文简单说明一下元注解,然后对元注解中的@Retention做深入的讨论,在文章最后使用元注解写一个自定义注解来结尾. 一.结论: @Target:注解的作用目标 @Target(ElementTyp ...