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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
Python 实现选择排序的算法步骤
Apr 22 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
Python 列表推导式需要注意的地方
Oct 23 Python
pycharm debug 断点调试心得分享
Apr 16 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
一个颜色轮换的简单例子
2006/10/09 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
PHP实现简单的计算器
2020/08/28 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python实现图书借阅系统
2019/02/20 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
如何学习Python time模块
2020/06/03 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
法学专业应届生求职信
2013/10/16 职场文书
十八大闭幕感言
2014/01/22 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python