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 相关文章推荐
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
Python编程之属性和方法实例详解
May 19 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
Python 数据结构之旋转链表
Feb 25 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
python3中property使用方法详解
Apr 23 Python
Django发送邮件功能实例详解
Sep 02 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
解决numpy数组互换两行及赋值的问题
Apr 17 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
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
PHP之APC缓存详细介绍 apc模块安装
2014/01/13 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
浅谈django orm 优化
2018/08/18 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
Python魔法方法详解
2019/02/13 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
如何清空Session
2015/02/23 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
生产车间主管岗位职责
2013/12/28 职场文书
军训自我鉴定200字
2014/02/13 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
孙振耀退休感言
2015/08/01 职场文书
2016银行求职自荐信
2016/01/28 职场文书