mysql安装、数据库、ORM
来源:互联网 发布:佳词网络科技集团地址 编辑:程序博客网 时间:2024/05/17 01:24
python如何操作数据库(如SQLite、MySQL)?
SQLite
SQLite的驱动内置在Python标准库中,所以我们可以直接来操作SQLite数据库。
使用Python的DB-API时,只要搞清楚Connection和Cursor对象,打开后一定记得关闭,就可以放心地使用。
使用Cursor对象执行insert,update,delete语句时,执行结果由 rowcount 返回影响的行数,就可以拿到执行结果。
使用Cursor对象执行select语句时,通过featchall()可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。如果SQL语句带有参数,那么需要把参数按照位置传递给execute()方法,有几个“?”占位符就必须对应几个参数,例如:
cursor.execute('select * from user where id=?', '1')
cursor.execute("select * from user where id='1'")
cursor.execute('select * from user where id=/'1/'')
SQLite支持常见的标准SQL语句以及几种常见的数据类型。
mysql安装(所有文件已经上传百度云mysql目录)
1)安装mysql,文件:mysql-installer-community-5.6.24.02)安装python MySQL驱动,文件:mysql-connector-python-2.0.4-py2.7
3)安装SQLAlchemy,文件:SQLAlchemy.zip
- 安装ez_setup.py,文件ez_setup.py;python怎么使用ez_setup.py
- 解压到任一文件夹目录下,命令行下 切换到这一目录;
- 执行python set_up.py install (python执行文件模式下,而非命令行交互模式下)
另外,如何不通过python接口操作MySQL,参考21分钟MySQL入门教程,看看安装部分。
有两点值得注意,
第一点,所有的操作都是针对某个具体的数据库,有两种方式实现:
一: 在登录数据库时指定, 命令: mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
例如登录时选择创建的数据库samp_db: mysql -D samp_db -u root -p
当然,第一次使用MySQL需要先创建一个数据库之后才能用这种方法!
二: 在登录后使用 use 语句指定, 命令: use 数据库名 ;
use 语句可以不加分号, 执行 use samp_db 来选择刚刚创建的数据库, 选择成功后会提示: Database changed
第二点,关于环境变量path的配置没有那么复杂,直接在path系统变量添加上MySQL安装目录里bin文件夹的完整目录即可。
MySQL免安装版本
1. 解压在C盘(其他也可以)Program Files下,文件夹为mysql
2. 配置文件:把my-small.ini重命名为my.ini,并添加如下配置
3. 配置环境变量:Path系统变量添加安装目录下(C:\Program Files\mysql)的bin文件夹
4. 管理员身份运行cmd.exe:
1)sc delete MySQL:确保MySQL服务被删除;
2)务必切换到C:\Program Files\mysql\bin目录下(否则会出现错误),执行 mysqld --install MySQL --defaults-file="c:\Program Files\mysql\my.ini"
3) net start MySQL:启动MySQL服务;
4)net stop MySQL:终止MySQL服务。
ORM:Object-Relational Mapping,把关系数据库的表结构映射到对象上
最有名的ORM框架是SQLAlchemy。
值得注意的是,SQLAlchemy操作的对象是个表,且这个表必须是已经创建的(可以未存储数据),创建表的数据库在创建引擎时与SQLAlchemy连接,这是数据库和SQLAlchemy交互的前提。这在自定义类时必须声明。
如
class User(Base): # 表的名字: __tablename__ = 'user' ......
表user就是我们之前创建在MySQL中的(利用MySQL创建表user)。
很显然,sessionmaker是很重要的一环,它是沟通python和数据库的桥梁。当然创建sessionmaker,还要引擎(实质就是上图中大方框中的内容的集合)的帮助。根据sessionmaker和引擎创建出(沟通python和数据库的)类,利用此类创建出实例,然后所有的操作都由该实例的相应方法完成。
代码:
# -*- coding:utf-8 -*-#ORM:把数据库表的行与相应的对象建立关联,互相转换。# 导入:from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base# 创建对象的基类:Base = declarative_base()# 定义User对象(用于对每个表list的每个元素(tuple)进行初始化,如User('1', 'Michael')):class User(Base): # 表的名字: __tablename__ = 'user' # 表的结构: id = Column(String(20), primary_key=True) name = Column(String(20))# 创建引擎,与指定数据库连接:engine = create_engine('mysql+mysqlconnector://root:19921005@localhost:3306/test')# 创建DBSession类DBSession = sessionmaker(bind=engine)##有了ORM,我们向数据库表中添加一行记录,可以视为添加一个User对象## 创建session实例,与数据库对话、交互:session = DBSession()# 创建新User对象:new_user = User(id='6',name='zhuma')# 添加到session:session.add(new_user)# 提交即保存到数据库:session.commit()# 关闭session:session.close()# 创建Session:session = DBSession()# 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:usr = session.query(User).filter(User.id=='6').one()# 打印类型和对象的name属性:print 'type:', type(usr)print 'name:', usr.name# 关闭Session:session.close()
- mysql安装、数据库、ORM
- PHP ORM操作MySQL数据库
- PHP ORM操作MySQL数据库
- 数据库的ORM
- Android 数据库ORM框架
- ORM数据库框架使用
- 数据库GreenDAO+ORM
- 5.数据库:ORM
- ORM-c++解析数据库
- Android-数据库-ORM框架
- android sqlite 数据库 orm
- laravel ORM 打印数据库
- ORM数据库DBFlow入门
- 数据库访问与ORM
- mysql 数据库安装
- MySQL数据库安装
- Fedora 安装mysql数据库
- mysql数据库的安装
- hdu1685 GCD 容斥原理
- [算法]Java实现 整数序列升序 混合出栈入栈操作 出栈打印返回值 排列可行性判断
- The Fundamental Matrix Song(基础矩阵之歌)——偶然发现,分享一下~
- 主成分分析(PCA)原理及推导
- Oracle备份与恢复系列 五 逻辑导入导出
- mysql安装、数据库、ORM
- C++ const和#define区别
- 递归解决-兔子问题-斐波那契数列
- 编程语言入门经典100例【Python版】
- CCM加密认证模式
- 不必要羡慕别人的生活
- POJ 2251 Dungeon Master
- 过滤器、监听器、拦截器的区别
- 【喵の开题报告】Translation of Semantics with Applications