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通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 Python
用Python写一个无界面的2048小游戏
May 24 Python
深入解析Python编程中super关键字的用法
Jun 24 Python
Python中类型检查的详细介绍
Feb 13 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
Linux下多个Python版本安装教程
Aug 15 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python Shapely使用指南详解
Feb 18 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
关于python中remove的一些坑小结
Jan 04 Python
用Python将GIF动图分解成多张静态图片
Jun 11 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模板,主要想体现一下思路
2006/12/25 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
Nuxt.js实战详解
2018/01/18 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
Python中的id()函数指的什么
2017/10/17 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python数组循环处理方法
2019/08/26 Python
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
如何进行Linux分区优化
2013/02/12 面试题
灰雀教学反思
2014/04/28 职场文书
市场营销战略计划书
2014/05/06 职场文书
学校创先争优活动总结
2014/08/28 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
勤俭节约主题班会
2015/08/13 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle