sqlalchemy python中的mysql数据库神器
在介绍sqlalchemy之前,我们先了解一下ORM。
ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射。也就是说ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系
而SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。
在ubuntu上安装 不同系统只是命令头不一样 安装 SQLAlchemy:
$ sudo pip install sqlalchemy
1 连接数据库
我们Code 下新建个 Python 文件name.py(name只是一个名字,随便你自己取 不过要符合命名规则):
# coding: utf-8 #使用utf-8
from sqlalchemy import create_engine #导入sqlalchemy中的create_engine包 用来连接数据库 也可以导入psycopg2包
engine = create_engine('mysql+mysqldb://<username>:<password>@<dsnname>')
username是数据库的用户名 password是数据库管理员密码 dsnname是ip+端口+路径
2 数据库的列
每个人都知道 数据库确实就是一列一列的数据 那数据库中的列有那么多的参数 我们在python中如何去确定呢?
是可能是一般人都会有的问题 我一开始也想过 查过 问过
而答案是python的sqlalchemy中Colume的用法
id = Column(Integer, primary_key=True)
username = Column(String(64), nullable=False, index=True)
password = Column(String(64), nullable=False)
email = Column(String(64), nullable=False, index=True)
type = Colume(Bool,nullable=True)
这里的话就简单介绍一下基本的参数填写了
有什么问题的 有什么错误的 希望各位可以指出 帮助我进步 谢谢
SQLAlchemy常用数据类型:
1. Integer:整形,映射到数据库中是int类型。
2. Float:浮点类型,映射到数据库中是float类型。他占据的32位。
3. Double:双精度浮点类型,映射到数据库中是double类型,占据64位。
4. String:可变字符类型,映射到数据库中是varchar类型.
5. Boolean:布尔类型,映射到数据库中的是tinyint类型。
6. DECIMAL:定点类型。是专门为了解决浮点类型精度丢失的问题的。在存储钱相关的字段的时候建议大家都使用这个数据类型。并且这个类型使用的时候需要传递两个参数,第一个参数是用来标记这个字段总能能存储多少个数字,第二个参数表示小数点后有多少位。
7. Enum:枚举类型。指定某个字段只能是枚举中指定的几个值,不能为其他值。在ORM模型中,使用Enum来作为枚举
8. Date:存储时间,只能存储年月日。映射到数据库中是date类型。在Python代码中,可以使用`datetime.date`来指定
9. DateTime:存储时间,可以存储年月日时分秒毫秒等。映射到数据库中也是datetime类型。在Python代码中,可以使用`datetime.datetime`来指定。示例代码如下:
10. Time:存储时间,可以存储时分秒。映射到数据库中也是time类型。在Python代码中,可以使用`datetime.time`来至此那个。
11. Text:存储长字符串。一般可以存储6W多个字符。如果超出了这个范围,可以使用LONGTEXT类型。映射到数据库中就是text类型。
12. LONGTEXT:长文本类型,映射到数据库中是longtext类型。
最后 大家可以看看https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320114981139589ac5f02944601ae22834e9c521415000
这个网站哦 我自己也是在这把python的教程过了几遍
如果有人是搞openstack的 希望可以给我一个求教的机会哦
sqlalchemy python中的mysql数据库神器的更多相关文章
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- 在python中配置MySQL数据库
MySQL数据库(1) 尽管用文件形式将数据保存到磁盘,已经是一种不错的方式.但是,人们还是发明了更具有格式化特点,并且写入和读取更快速便捷的东西——数据库(如果阅读港台的资料,它们称之为“资料库”) ...
- 在python中连接mysql数据库,并进行增删改查
数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查. 安装mysql的python扩展 ...
- python中的mysql数据库like模糊查询
%在python中是个特殊的符号,如%s,%d分别代表了字符串占位符和数字占位符. 大家知道,mysql的模糊查询也需要用到%. 所以,可以先把需要查的字符串抽出来,再以参数方式传入. args = ...
- python程序中使用MySQL数据库
目录 python程序中使用MySQL数据库 1 pymysql连接数据库 2 sql 注入 3 增删改查操作 4 pymysql使用总结 python程序中使用MySQL数据库 1.python中使 ...
- python项目中对mysql数据库进行配置,并进行连接测试
在settings.py中配置mysql数据库进行相关配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME ...
- python——django使用mysql数据库(二)
上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...
- python——django使用mysql数据库(一)
之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经 ...
- Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...
随机推荐
- POJ2139-Six Degrees of Cowvin Bacon-(Floyd_Warshall)
题意:有n只牛拍电影m部电影,知道每部电影有哪些牛参与,一起拍电影的牛之间维度为1,ab拍电影则ab之间的维度为1,如果bc一起拍电影,ac没有一起,则ac之间的维度为2,以此类推.求哪知牛到所有牛之 ...
- SQLServer 数据库封装类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- yugabyte 做为hasura graphql-engine的pg数据引擎
今天看了下yugabyte 的更新 ,ysql 基本可以生产可用,刚好测试了下与hasura graphql-engine的集成,发现很不错,可以直接运行 环境准备 docker-compose ve ...
- # [SDOI2019]移动金币 阶梯博弈 dp
[SDOI移动金币 链接 vijos 思路 阶梯博弈,dp统计. 参见wxyww 代码 #include <bits/stdc++.h> using namespace std; cons ...
- Vue中的native修饰符解析
native修饰符 一般来说,vue本身提供了v-on:eventName这个语法来提供vue的时事件绑定,通常使用@eventName这个语法糖代替上述语法. 使用过程中没有考虑@eventName ...
- 无法导入cv2模块(Python 3.6)
C:\Users\leahj>C:\Users\leahj\AppData\Local\Programs\Python\Python36\Scripts\pip3 install cv2 Col ...
- shell 获取字符串的长度
awk 方式 bogon:conf macname$ echo "abcde" | awk '{print length($0)}' 利用${#str}来获取字符串的长度 bogo ...
- 第01组 Alpha冲刺(1/6)
队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/11845138.html 作业博客: https://edu.cnblogs.com/campus/fz ...
- js浮点数精度丢失问题及如何解决js中浮点数计算不精准
js中进行数字计算时候,会出现精度误差的问题.先来看一个实例: console.log(0.1+0.2===0.3);//false console.log(0.1+0.1===0.2);//true ...
- java定时任务框架Quartz入门与Demo搭建