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中pycurl库的用法实例
Sep 30 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
python 生成器协程运算实例
Sep 04 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
Python 生成VOC格式的标签实例
Mar 10 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
python用opencv 图像傅里叶变换
Jan 04 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 学习路线与时间表
2010/02/21 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
实例讲解Python中的私有属性
2014/08/21 Python
Python脚本实现代码行数统计代码分享
2015/03/10 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
python的继承知识点总结
2018/12/10 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
50道外企软件测试面试题
2014/08/18 面试题
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
好的自荐信的要求
2013/10/30 职场文书
通知函格式范文
2015/04/27 职场文书
三方合作意向书范本
2015/05/09 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技