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中为什么要用self探讨
Apr 14 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
详解Python中的变量及其命名和打印
Mar 11 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
详解django2中关于时间处理策略
Mar 06 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
Python闭包和装饰器用法实例详解
May 22 Python
Python单元测试及unittest框架用法实例解析
Jul 09 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的curl开启问题探讨
2014/04/08 PHP
浅谈php扩展imagick
2014/06/02 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
jQuery实现查找链接文字替换属性的方法
2016/06/27 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Python列表与元组的异同详解
2019/07/02 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
探亲邀请信范文
2014/01/30 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
项目施工员岗位职责
2014/03/09 职场文书
夫妻吵架保证书
2015/05/08 职场文书
2015年女工委工作总结
2015/07/27 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android
python+opencv实现目标跟踪过程
2022/06/21 Python