本篇小说短时间更新

本章介绍与安装和维护Django相关的有个别更布满的附加选项和景观。首先,我们将看看使用SQLite以外的数据库的装置配备,然后介绍如何提高Django以及哪些手动安装Django。最终,我们将介绍怎么样设置Django的开销版本,以免备你想要使用Django开垦的新颖优势。

本文翻译自:

固然本文有何地翻译不妥,请在本文下方商酌情处置罚款建议 ^_^

版权注解: style=”color: #ff0000;”>原创文章,允许转载,转发时请务必以超链接方式申明文章原来出处,小编新闻。不然将追究法律义务。

Python 2.x
上一连MySQL的库倒是不少的,个中相比较盛名正是MySQLdb(Django项目都选择它;小编也在开采测试系统时也使用过),见:

Python 二.x
上连年MySQL的库倒是不少的,其中相比较有名就是MySQLdb(Django项目都使用它;笔者也在支付测试系统时也应用过),见:

运行其余数据库

倘使你希图采用Django的数据库API成效,则要求保险数据库服务器正在运维。
Django支持广大不等的数据库服务器,并且正式匡助PostgreSQL,MySQL,Oracle和SQLite。

第贰壹章蕴涵了将Django连接到各类那几个数据库的特定附加消息,不过当先本书范围向您出示怎么着设置它们;请参阅各样体系网址上的数据库文书档案。

假定你正在开垦3个大约的种类仍然您不希图在生产情形中配备的事物,SQLite平常是最轻巧易行的选项,因为它无需周转单独的服务器。
可是,SQLite与任何数据库有广大分裂之处,所以倘若您正在处理大量数据,提议选拔与你安插在生育中动用同样的数据库进行付出。

除去数据库后端之外,还索要确认保障卫安全装了Python数据库绑定。

  • 假定您使用PostgreSQL,则须要postgresql_psycopg2包。您或者须求参照他事他说加以考察PostgreSQL笔记,以得到有关此数据库的越来越多本领细节。假如你在Windows上,
    检查非合法编译的Windows版本。

  • 假如你使用MySQL,你将必要MySQL-python软件包,版本为一.2.1p贰或更加高版本。您还亟需阅读MySQL后端数据库特定的注明。

  • 倘若您使用的是SQLite,您或然必要阅读SQLite后端笔记。

  • 假若你使用的是Oracle,则供给一份cx_Oracle别本,但请阅读Oracle后端的数据库特定备注,以博取有关Oracle和cx_Oracle的受协理版本的基本点新闻。

  • 假如你使用的是非官方的第一方后端,请参阅提供的其余其余需要的文书档案。
    借使您打算动用Django的manage.py
    migrate命令为你的模型自动创立数量库表(第一回安装Django并创立项目然后),您供给保险Django有权成立和改换数据库中的表,重新利用;假如您希图手动创设表格,您能够简轻松单地给予Django
    SELECT,INSERT,UPDATE和DELETE权限。成立具有那些权限的数据库用户后,您将在类型的设置文件中钦命详细音信,请参阅数据库以明白详细消息

如果您使用Django的测试框架来测试数据库查询,那么Django必要创设测试数据库的权位。

手动安装Django

  1. 从Django
    Project下载页面下载最新版本。

  2. 解压下载的文件(譬喻tar xzvf
    Django-X.Y.tar.gz,在那之中X.Y是流行版本的版本号)。
    要是您使用Windows,则可以下载命令行工具bsdtar来推行此操作,也能够选拔基于GUI的工具(如7-zip)。

  3. 切换来步骤第22中学开创的目录(比如cd Django-X.Y)。

  4. 假设您使用的是Linux,Mac OS
    X或其余Unix版本,请在shell提醒下输入命令sudo python setup.py
    install。
    即便您使用Windows,请使用管理员权限运行命令shell,然后运营python
    setup.py install命令。
    这就要您的Python安装的站点包目录中装置Django。

去除旧版本借让你使用此设置技能,则第三删除任何现存的Django安装(见下文)尤为重大。
不然,最终可能会产生安装不当,在那之中蕴藏先前版本中已从Django中删除的文件。

摘要

那篇手册描述了怎么来设置和陈设 MySQL Connector/Python,MySQL
Connector/Python 是 Python 和 MySQL
服务实行通信的贰个单身驱动程序,本篇手册还将演讲怎么样行使它来支付数据库应用程序。

收获 Connector/Python 的每3次揭露版本的变动细节,请参阅 MySQL
Connector/Python Release
Notes。

获得合法音信,请参阅 Legal
Notices设置Django的越来越多音信,正在全力翻译中。。

获取 MySQL 使用帮衬,请访问 MySQL Forums
或者 MySQL Mailing Lists,在那边您能够和其他MySQL 用户进行研商沟通 。

收获 MySQL
其余产品的文书档案,包罗别的语言的翻译文书档案和可供下载各类格式的本子,那包括HTML 和 PDF 格式,具体参看 MySQL Documentation
Library

至于准许信息的1部分证明:MySQL
产品恐怕包罗第一方软件,使用许可音信,借使您正在利用 MySQL
Connector/Python 的购买发售公布版本,请点击 this
document
获取许可新闻,里面包含了关于包括了商业贸易公布版本的第1方软件的承认音信。。借使你正在采取MySQL Connector/Python 的社区揭露版本,请点击 this
document
获取许可音信,里面包蕴了有关包蕴了社区宣布版本的第②方软件的批准新闻。

文档生成日期:2017-06-0一(修订代号:5241陆)

唯独,近日MySQLdb并不帮助python三.x,英特网找了1部分艺术,后来本人要么不时开掘MySQL官方已经提供了MySQL连接器,而且已经有支持Python三.x的版本了。MySQL
Connector/Python, a self-contained Python driver for communicating with
MySQL servers. 这一个用起来依旧以为相比顺手的。
至于MySQL
Connector/Python的各类介绍、安装、API等文书档案,依旧参谋官方网址吧:
(注意:安装程序将有关MySQL
Connnector的python二的源文件复制到了python三库的地方(运营时会报语法错误),笔者就直接手动复制了内部python3/目录下的公文过去就化解。)

唯独,近期MySQLdb并不帮忙python三.x,英特网找了一些办法,后来本人要么有的时候开掘MySQL官方已经提供了MySQL连接器,而且早已有支撑Python3.x的版本了。MySQL
Connector/Python, a self-contained Python driver for communicating with
MySQL servers. 那么些用起来照旧深感相比较顺手的。
关于MySQL
Connector/Python的种种介绍、安装、API等文书档案,依旧参照他事他说加以考察官方网站吧:
(注意:安装程序将关于MySQL
Connnector的python贰的源文件复制到了python3库的职责(运维时会报语法错误),笔者就径直手动复制了在那之中python3/目录下的文书过去就一蹴而就。)

升级Django

1 MySQL Connector/Python 介绍

MySQL Connector/Python 能够令你的 Python 程序和 MySQL
数据库进行通讯,它选择了符合 Python Database API Specification
v2.0(PEP  249)规范的 API
。这个 API 除了 Python Standard
Library 外别的的都以用纯 Python
写的还要未有此外借助关系。

赢得 Connector/Python 每一个发表版本的详细改造,请参阅 MySQL
Connector/Python Release
Notes。

MySQL Connector/Python 帮忙包含如下:

  • 差了一些全体的功效都由 MySQL Server(包蕴 MySQL Server 五.七 版本) 提供
  • Python 和 MySQL 两个的数据类型能够来回转变其相应的参数值,比方Python 的 datetime 和 MySQL 的
    DATETIME,为了有利于起见,你能够选择自动调换,也许关闭最好品质。
  • 具备的 MySQL 增加到了正规的 SQL 语法。
  • 压缩协议能够在客户端和服务端之间展开对数据流的裁减。
  • 利用 TCP/IP 套接字和在 Unix 上使用 Unix 套接字实行一连。
  • 行使 SSL 连接能够使 TCP/IP 更安全。
  • 在正儿8经库外,独立的 Connector/Python 驱动没有需求 MySQL
    客户端库大概别的一些 Python 的模块。

获得各样 MySQL Connector/Python 版本能适用哪些 Python 版本的音信,请参阅
3 Connector/Python Versions

注:Connector/Python 不援救老版本的 MySQL Server
验证格局,那代表 四.一 此前版本的 MySQL 不会专门的学问

别的,Python3.x三番五次MySQL的其余方案有:oursql, PyMySQL, myconnpy
等,参谋如下链接:

金沙注册送58 ,别的,Python三.x连接MySQL的其他方案有:oursql, PyMySQL, myconnpy
等,参照他事他说加以考查如下链接:

删除任何旧版本的Django

假设你正在升级从原先的版本安装的Django,则须要在安装新本子此前卸载旧的Django版本。

假诺你之前使用pip或easy_install安装了Django,再度行使pip或easy_install举办设置将机关处理旧版本,因而你无需和煦入手。

假设你以前手动安装了Django,则卸载操作就像是从Python站点包中删除django目录一样简单。
要找到供给删除的目录,能够在shell提示符(而不是交互式Python提醒符)下运作以下命令:

python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"

二 MySQL Connector/Python 开辟者指南

上面那么些蕴藏了 MySQL 应用方面包车型大巴指南对于二个独具 Python
开采背景的人手来讲不会显得那么难:

  • 为了安全

上面只是贴3个试用 MySQL Connector/Python
的Python脚本吧(包罗成立表、插入数据、从文件读取并插入数据、查询数据等):

上边只是贴多少个试用 MySQL Connector/Python
的Python脚本吧(包含创设表、插入数据、从文件读取并插入数据、查询数据等):

安装特定分签发承包合约

反省分发特定的笔记,以查看您的平台/分发版是不是提供规范的Django软件包/安装程序。
分发提供的软件包平时会容许自动安装依赖关系和轻巧升级路线;
可是,这一个软件包很少会蕴藏最新版本的Django。

3 Connector/Python 版本

上面这张表总括了可用的 Connector/Python
版本,对于有个别待揭橥的正经版本的话,在它之前的付出版本就不再遥远协助了。

Connector/Python 版本 MySQL Server 版本 Python 版本 Connector 状态
2.2 5.7、5.6、5.5 3.3 或更高、2.7 开发者里程碑
2.1 5.7、5.6、5.5 3.3 或更高、2.7、2.6 推荐版本
2.0 5.7、5.6、5.5 3.3 或更高、2.7、2.6 正式版,支持
1.2 5.7、5.6、5.5(5.1、5.0、4.1) 3.1 或更高、2.7、2.6 正式版,支持

注:大名鼎鼎,MySQL server 和 Python
版本两个要协同职业,那么必要求 Connector/Python
作为2个大桥将两端连在一齐

注:Connector/Python 不辅助老版本的 MySQL Server
验证办法,那象征 四.一 此前版本的 MySQL 不会做事

 

 

设置开垦版本

假定你决定采用新型的Django开拓版本,那么您须要细致关怀开垦时间表,并且您要求关切将要发布的本子的发布表明。
那将帮扶你保持你也许想要使用的其余新功效,以及在创新Django别本时索要对代码进行的其他变动。
(对于平安版本,发行表明中著录了别样须要的改造。)

若是你希望能够不常使用新型的不当修复和立异来更新您的Django代码,请遵照以下表明操作:

  1. 保险您早已安装了Git,并且你能够从二个shell运转它的命令。
    (在shell提醒下输入git help来测试。)
  2. 翻开Django的严重性开辟分支(’trunk’或’master’),如下所示:

 git clone git://github.com/django/django.git django-trunk

那将要当前目录中开创一个目录django-trunk。

  1. 担保Python解释器能够加载Django的代码。 最方便的措施是透过点。
    运营以下命令:

sudo pip install -e django-trunk/

(若是使用virtualenv或运行Windows,则足以省略sudo。)那将使Django的代码可导入,并且还会使django-admin实用程序命令可用。
换句话说,你都策动好了!

毫无运转sudo python setup.py
install,因为你已经在步骤三中推行了对应的操作。当您想翻新Django源代码别本时,只需在django-Trunk中运行命令git
pull 目录。 当你如此做时,Git会自动下载任何更换。

4 Connector/Python 安装

Connector/Python 能够在其余安装了 Python 的阳台上运营,Unix 和 类 Unix
系统上都预装了 Python,比方 Linux,OS X 和
FreeBSD。在微软的操作系统中,你能够在 Python Download
website 上下载 Python
安装包举办安装,假若有供给,请在您尝试安装 Connector/Python
从前先下载和设置 Python 。

注:Connector/Python
必要您的种类路线下有 Python,因为当 Python
未有被加载时,Connector/Python 会安装战败

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python3
# a sample to use mysql-connector for python3
# see details from   http://dev.mysql.com/doc/connector-python/en/index.html
 
import mysql.connector
import sys, os
 
user = ‘root’
pwd  = ‘123456’
host = ‘127.0.0.1’
db   = ‘test’
 
data_file = ‘mysql-test.dat’
 
create_table_sql = "CREATE TABLE IF NOT EXISTS mytable ( \
                    id int(10) AUTO_INCREMENT PRIMARY KEY, \
    name varchar(20), age int(4) ) \
    CHARACTER SET utf8"
 
insert_sql = "INSERT INTO mytable(name, age) VALUES (‘Jay’, 22 ), (‘杰’, 26)"
select_sql = "SELECT id, name, age FROM mytable"
 
cnx = mysql.connector.connect(user=user, password=pwd, host=host, database=db)
cursor = cnx.cursor()
 
try:
    cursor.execute(create_table_sql)
except mysql.connector.Error as err:
    print("create table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
try:
    cursor.execute(insert_sql)
except mysql.connector.Error as err:
    print("insert table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
if os.path.exists(data_file):
    myfile = open(data_file)
    lines = myfile.readlines()
    myfile.close()
 
    for line in lines:
        myset = line.split()
        sql = "INSERT INTO mytable (name, age) VALUES (‘{}’, {})".format(myset[0], myset[1])
        try:
            cursor.execute(sql)
        except mysql.connector.Error as err:
            print("insert table ‘mytable’ from file ‘mysql-test.dat’ — failed.")
            print("Error: {}".format(err.msg))
            sys.exit()
 
try:
    cursor.execute(select_sql)
    for (id, name, age) in cursor:
        print("ID:{}  Name:{}  Age:{}".format(id, name, age))
except mysql.connector.Error as err:
    print("query table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
cnx.commit()
cursor.close()
cnx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python3
# a sample to use mysql-connector for python3
# see details from   http://dev.mysql.com/doc/connector-python/en/index.html
 
import mysql.connector
import sys, os
 
user = ‘root’
pwd  = ‘123456’
host = ‘127.0.0.1’
db   = ‘test’
 
data_file = ‘mysql-test.dat’
 
create_table_sql = "CREATE TABLE IF NOT EXISTS mytable ( \
                    id int(10) AUTO_INCREMENT PRIMARY KEY, \
    name varchar(20), age int(4) ) \
    CHARACTER SET utf8"
 
insert_sql = "INSERT INTO mytable(name, age) VALUES (‘Jay’, 22 ), (‘杰’, 26)"
select_sql = "SELECT id, name, age FROM mytable"
 
cnx = mysql.connector.connect(user=user, password=pwd, host=host, database=db)
cursor = cnx.cursor()
 
try:
    cursor.execute(create_table_sql)
except mysql.connector.Error as err:
    print("create table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
try:
    cursor.execute(insert_sql)
except mysql.connector.Error as err:
    print("insert table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
if os.path.exists(data_file):
    myfile = open(data_file)
    lines = myfile.readlines()
    myfile.close()
 
    for line in lines:
        myset = line.split()
        sql = "INSERT INTO mytable (name, age) VALUES (‘{}’, {})".format(myset[0], myset[1])
        try:
            cursor.execute(sql)
        except mysql.connector.Error as err:
            print("insert table ‘mytable’ from file ‘mysql-test.dat’ — failed.")
            print("Error: {}".format(err.msg))
            sys.exit()
 
try:
    cursor.execute(select_sql)
    for (id, name, age) in cursor:
        print("ID:{}  Name:{}  Age:{}".format(id, name, age))
except mysql.connector.Error as err:
    print("query table ‘mytable’ failed.")
    print("Error: {}".format(err.msg))
    sys.exit()
 
cnx.commit()
cursor.close()
cnx.close()
下一步是怎么样?

在下壹章中,大家将介绍与一定数据库一同运营Django的叠合音讯。

4.1 获取 Connector/Python

 

 

四.二 Connector/Python 2进制文件安装

别的,最终再贴一个使用MySQLdb的python贰.x代码示例吧:

别的,最终再贴3个选择MySQLdb的python2.x代码示例吧:

四.3 Connector/Python 源代码安装

 

 

四.4 验证 Connector/Python 是或不是安装成功

 

 

伍 Connector/Python 代码例子

这几个代码例子表明了哪些利用 MySQL Connector/Python 来连接 MySQL Server
并付出出 Python 应用程序和本子。

 

 

5.1 使用 Connector/Python 连接 MySQL

构造函数 connect() 制造了三个连接 MySQL 的劳务并再次来到二个 MySQLConnection
对象。

下边那些例子展示了怎么来连接 MySQL server:

import mysql.connector

cnx = mysql.connector.connect(user='scott', password='tiger',
                              host='127.0.0.1',
                              database='employees')
cnx.close()

翻译未完 ……

 

 

 

 

Python

Python

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python2.7
# coding=utf-8
 
import MySQLdb
import sys
 
host = ‘localhost’
user = ‘root’
pwd  = ‘123456’   # to be modified.
db   = ‘test’
 
 
if __name__ == ‘__main__’:
    conn = MySQLdb.connect(host, user, pwd, db, charset=’utf8′);
    try:
        conn.ping()
    except:
        print ‘failed to connect MySQL.’
    sql = ‘select * from mytable where id = 2’
    cur = conn.cursor()
    cur.execute(sql)
    row = cur.fetchone()
#    print type(row)
    for i in row:
        print i
    cur.close()
    conn.close()
    sys.exit()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python2.7
# coding=utf-8
 
import MySQLdb
import sys
 
host = ‘localhost’
user = ‘root’
pwd  = ‘123456’   # to be modified.
db   = ‘test’
 
 
if __name__ == ‘__main__’:
    conn = MySQLdb.connect(host, user, pwd, db, charset=’utf8′);
    try:
        conn.ping()
    except:
        print ‘failed to connect MySQL.’
    sql = ‘select * from mytable where id = 2’
    cur = conn.cursor()
    cur.execute(sql)
    row = cur.fetchone()
#    print type(row)
    for i in row:
        print i
    cur.close()
    conn.close()
    sys.exit()

相关文章

网站地图xml地图