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 运算符 供重载参考
Jun 11 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
Python切换pip安装源的方法详解
Nov 18 Python
python字符串string的内置方法实例详解
May 14 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python Web编程之WSGI协议简介
Jul 18 Python
如何使用Python实现斐波那契数列
Jul 02 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 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
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
Python实现的中国剩余定理算法示例
2017/08/05 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
农村党支部先进事迹
2014/01/14 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
社团活动总结范文
2014/04/26 职场文书
个人合伙协议书范本
2014/10/14 职场文书
医生个人年终总结
2015/02/28 职场文书
电力工程合作意向书
2015/05/11 职场文书
回复函范文
2015/07/14 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书
详解Python常用的魔法方法
2021/06/03 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏