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中unittest实现简单的单元测试实例详解
Jan 09 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
Python计算公交发车时间的完整代码
Feb 12 Python
python实现图像拼接
Mar 05 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
详细分析Python collections工具库
Jul 16 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
使用Python通过oBIX协议访问Niagara数据的示例
Dec 04 Python
教你使用pyinstaller打包Python教程
May 27 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
php常量详细解析
2015/10/27 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
如何开发一个JQuery插件
2016/07/28 面试题
毕业生的自我评价分享
2013/12/18 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server