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利用hook技术破解https的实例代码
Mar 25 Python
Python中的模块和包概念介绍
Apr 13 Python
git进行版本控制心得详谈
Dec 10 Python
python3个性签名设计实现代码
Jun 19 Python
python3实现域名查询和whois查询功能
Jun 21 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
Python参数传递及收集机制原理解析
Jun 05 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
详解Pymongo常用查询方法总结
Jan 29 Python
Python的property属性详细讲解
Apr 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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
使用js 设置url参数
2013/07/08 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
巧用python和libnmapd,提取Nmap扫描结果
2016/08/23 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
python assert的用处示例详解
2019/04/01 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
党员自评材料范文
2014/12/17 职场文书
辞职信范文大全
2015/03/02 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python