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文件和目录操作函数小结
Jul 11 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
Python实现全角半角字符互转的方法
Nov 28 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
python 实现交换两个列表元素的位置示例
Jun 26 Python
python机器学习包mlxtend的安装和配置详解
Aug 21 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
python实现根据文件格式分类
Oct 31 Python
Pandas实现一列数据分隔为两列
May 18 Python
Python新手如何理解循环加载模块
May 29 Python
Python django框架 web端视频加密的实例详解
Nov 20 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 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
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
document.getElementById介绍
2011/09/13 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
Javascript的比较汇总
2016/07/25 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
angular-cli修改端口号【angular2】
2017/04/19 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python的依赖管理的实现
2019/05/14 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Django URL参数Template反向解析
2020/11/24 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
.net笔试题
2014/03/03 面试题
夜班门卫岗位职责
2013/12/09 职场文书
小学教师办公室制度
2014/02/03 职场文书
企业文明单位申报材料
2014/05/16 职场文书
《包身工》教学反思
2016/02/23 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
JavaScript实现简单的音乐播放器
2022/08/14 Javascript