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 基础学习教程
Feb 08 Python
python写的一个文本编辑器
Jan 23 Python
Python中模块string.py详解
Mar 12 Python
Python3编程实现获取阿里云ECS实例及监控的方法
Aug 18 Python
numpy中矩阵合并的实例
Jun 15 Python
python 通过麦克风录音 生成wav文件的方法
Jan 09 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Python中logging日志的四个等级和使用
Nov 17 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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/05 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
奇妙的js
2007/09/24 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
python编程通过蒙特卡洛法计算定积分详解
2017/12/13 Python
Python使用OpenCV进行标定
2018/05/08 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
数组越界问题
2015/10/21 面试题
季度思想汇报
2014/01/01 职场文书
农贸市场管理制度
2014/01/31 职场文书
旅游安全协议书
2014/04/21 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
二手房购房协议书范本
2014/10/05 职场文书
校园广播稿100字
2014/10/06 职场文书
2014年租房协议书范本
2014/10/30 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
小班下学期个人总结
2015/02/12 职场文书
python turtle绘图
2022/05/04 Python