Django开发 (二) 连接到数据库与网站后台管理
在Web程序中难免要与数据库打交道,django目前支持四种数据库
1、PostgreSQL
需要安装psycopg
2、SQLite 3 SQLite3是一个本地数据库,类似于access,可以使用SQLite-manager来管理。
在Django下面使用SQLite需要安装pysqllite,点击这里直接下载pysqlite-2.4.1.win32-py2.5.exe
3、MySQL
版本为1.2.1p2或者更高的MySQL需要安装MySQLdb,
4、Oracle
版本为 4.3.1 或者更高的Oracle需要安装cx_Oracle
对于SQL Server的数据库引擎支持工作尚未完成
本文已最简单的SqlLite为例进行介绍,希望能起到抛砖引玉的效果.
1、 数据库的配置
根据上一章创建一个名为myblog的项目
打开根目录下的settings.py文件,编辑如下配置:
DATABASE_ENGINE = 'sqlite3' # 数据库引擎
DATABASE_NAME = './db/blog.sqlite' # 数据库名字,若是sqlite,则制定数据库文件路径
DATABASE_USER = '' # 用户名,sqlite为空
DATABASE_PASSWORD = '' # 密码,sqlite为空
DATABASE_HOST = '' # 数据库服务器地址,sqlite为空
DATABASE_PORT = '' # 端口,sqlite为空
设置 | 数据库 | 适配器 |
---|---|---|
postgresql | PostgreSQL | psycopg 版本 1.x, http://www.djangoproject.com/r/python-pgsql/1/. |
postgresql_psycopg2 | PostgreSQL | psycopg 版本 2.x, http://www.djangoproject.com/r/python-pgsql/. |
mysql | MySQL | MySQLdb , http://www.djangoproject.com/r/python-mysql/. |
sqlite3 | SQLite | Python 2.5+ 内建。 其他, pysqlite , http://www.djangoproject.com/r/python-sqlite/. |
ado_mssql | Microsoft SQL Server | adodbapi 版本 2.0.1+, http://www.djangoproject.com/r/python-ado/. |
oracle | Oracle | cx_Oracle , http://www.djangoproject.com/r/python-oracle/. |
2、创建model
在根目录下创建mvc文件夹,在mvc下分别创建models.py, __init__.py文件
django把每个具有__init__.py文件的文件夹看成一个命名空间,在根目录下需要添加他的引用,在setting.py找到
![](/Images/OutliningIndicators/ContractedBlock.gif)
model.py的代码:
![](/Images/OutliningIndicators/ContractedBlock.gif)
好了,model都创建好了,下面生成数据库
3、生成数据库
打开命令行,进入项目所在的文件夹输入manage.py syncdb ,它会提示你
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):
大概的意思是是否创建django自带的网站后台管理程序的数据库,选择yes, 然后根据提示设置好用用户名和密码等
该操作后你可以在配置的数据库文件夹下看到生成的数据库
4、测试数据连接
运行命令行 python manage.py shell
输入下面这些命令来测试你的数据库配置:
>>> from django.db import connection
>>> cursor = connection.cursor()
如果没有显示什么错误信息,那么你的数据库配置是正确的
5、配置urls.py
打开urls.py,在顶上加上 from django.contrib import admin
在patterns添加一项 (r'^admin/(.*)',admin.site.root),
好了 现在在命令行输入 manage.py runserver 启动web服务
浏览器打开http://127.0.0.1:8000/admin/进入网站后台管理~