Python的Django框架中的数据库配置指南


Posted in Python onJuly 17, 2015

记住这些理念之后,让我们来开始 Django 数据库层的探索。 首先,我们需要做些初始配置;我们需要告诉Django使用什么数据库以及如何连接数据库。

我们假定你已经完成了数据库服务器的安装和激活,并且已经在其中创建了数据库(例如,用 CREATE DATABASE 语句)。 如果你使用SQLite,不需要这步安装,因为SQLite使用文件系统上的独立文件来存储数据。

象前面章节提到的 TEMPLATE_DIRS 一样,数据库配置也是在Django的配置文件里,缺省 是 settings.py 。 打开这个文件并查找数据库配置:

DATABASE_ENGINE = ''
DATABASE_NAME = ''
DATABASE_USER = ''
DATABASE_PASSWORD = ''
DATABASE_HOST = ''
DATABASE_PORT = ''

配置纲要如下。

    DATABASE_ENGINE 告诉Django使用哪个数据库引擎。 如果你在 Django 中使用数据库, DATABASE_ENGINE 必须是表中所列出的值。

Python的Django框架中的数据库配置指南

    要注意的是无论选择使用哪个数据库服务器,都必须下载和安装对应的数据库适配器。 访问表 5-1 中“所需适配器”一栏中的链接,可通过互联网免费获取这些适配器。 如果你使用Linux,你的发布包管理系统会提供合适的包。 比如说查找`` python-postgresql`` 或者`` python-psycopg`` 的软件包。

    配置示例:

DATABASE_ENGINE = 'postgresql_psycopg2'

    DATABASE_NAME 将数据库名称告知 Django 。 例如:

DATABASE_NAME = 'mydb'

    如果使用 SQLite,请对数据库文件指定完整的文件系统路径。 例如:

DATABASE_NAME = '/home/django/mydata.db'

    在这个例子中,我们将SQLite数据库放在/home/django目录下,你可以任意选用最合适你的目录。

    DATABASE_USER 告诉 Django 用哪个用户连接数据库。 例如: 如果用SQLite,空白即可。

    DATABASE_PASSWORD 告诉Django连接用户的密码。 SQLite 用空密码即可。

    DATABASE_HOST 告诉 Django 连接哪一台主机的数据库服务器。 如果数据库与 Django 安装于同一台计算机(即本机),可将此项保留空白。 如果你使用SQLite,此项留空。

    此处的 MySQL 是一个特例。 如果使用的是 MySQL 且该项设置值由斜杠( '/' )开头,MySQL 将通过 Unix socket 来连接指定的套接字,例如:

DATABASE_HOST = '/var/run/mysql'

一旦在输入了那些设置并保存之后应当测试一下你的配置。 我们可以在`` mysite`` 项目目录下执行上章所提到的`` python manage.py shell`` 来进行测试。 (我们上一章提到过在,`` manager.py shell`` 命令是以正确Django配置启用Python交互解释器的一种方法。 这个方法在这里是很有必要的,因为Django需要知道加载哪个配置文件来获取数据库连接信息。)

输入下面这些命令来测试你的数据库配置:

>>> from django.db import connection
>>> cursor = connection.cursor()

如果没有显示什么错误信息,那么你的数据库配置是正确的。 否则,你就得 查看错误信息来纠正错误。 下表是一些常见错误。

Python的Django框架中的数据库配置指南

Python 相关文章推荐
用Python和MD5实现网站挂马检测程序
Mar 13 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
python实现excel读写数据
Mar 02 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python安装requests库的实例代码
Jun 25 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
QML实现钟表效果
Jun 02 Python
python中的垃圾回收(GC)机制
Sep 21 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 Python
分享python函数常见关键字
Apr 26 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 #Python
在Django的视图中使用数据库查询的方法
Jul 16 #Python
详解Python的Django框架中的模版继承
Jul 16 #Python
Django中模版的子目录与include标签的使用方法
Jul 16 #Python
Django中使用locals()函数的技巧
Jul 16 #Python
Django框架中render_to_response()函数的使用方法
Jul 16 #Python
在Python的Django框架中加载模版的方法
Jul 16 #Python
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
让PHP支持页面回退的两种方法
2008/01/10 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python扩展内置类型详解
2018/03/26 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
Django后台admin的使用详解
2019/07/08 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
外包公司软件测试工程师
2014/11/01 面试题
一分钟演讲稿
2014/04/30 职场文书
白血病募捐倡议书
2014/05/14 职场文书
道德演讲稿
2014/05/21 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
考试后的感想
2015/08/07 职场文书
用Python将库打包发布到pypi
2021/04/13 Python