让我们看看 startproject 创建了什么东西:
mysite/
__init__.py
manage.py
settings.py
urls.py
这些文件是:
-
__init__.py:这是一个空的文件,告诉Python这个文件夹作为一个Python包。(如果你是Python初学者,请看Python官方文档中更多的关于包的内容)
-
manage.py:一个命令行实用程序,让你以多种途径与 Django 项目交互
-
settings.py:这个Django项目的设定/配置
-
urls.py:这个 Django 项目的URL定义;的由 Django 驱动的网站的一个“内容表”。
开发服务器
让我们来验证一下已经做过的工作。进入到 mysite 目录中(如果你还没准备好),并且运行 python manage.py runserver 。你将看到以下命令行的输出:
Validating models...
0 errors found.
Django version 0.95, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
这样你就启动了 Django 开发服务器,一个由纯 Python 写成的轻量级 Web Server。我们已经在 Django 包含了这个东西便于你能快速开发,而不必去配置一个生产服务器——比如 Apache——除非你已经为产品准备好了。
现在应该提醒你:任何情况下都不要在一个生产环境中使用这个 Server。它仅仅合适用于开发。(我们对做 Web 框架感兴趣,而不是 Web Servers)
那么现在这个 Server 正在运行中,用你的浏览器访问 http://127.0.0.1:8000/。你将看到一个“Welcome to Django”的页面,非常舒适的浅蓝色。它已经工作起来了!
更改端口
缺省情况下,runserver 命令在8000端口启动开发服务器。如果你想改变服务器的端口,可以给它传递一个命令行变量。比如,下面这个命令从8080端口启动服务器:
python manage.py runserver 8080
开发服务器的完整文档在这里。
建立数据库
现在,修改 settings.py 文件。这是一个普通的 Python 模块,有呈现 Django 设定的模块层变量。更改这些设定以匹配你的数据库连接参数:
-
DATABASE_ENGINE——可以是“postgresql_psycopg2”、“mysql”或者“sqlite3”。其他的后台也是可以用的,看这里。
-
DATABASE_NAME——你的数据库名称,或者如果你是用SQLite的话就是完整的数据库(绝对)路径。
-
DATABASE_USER——你的数据库帐号(SQLite不用)
-
DATABASE_PASSWORD——你的数据库密码(SQLite不用)
-
DATABASE_PASSWORD——你的数据库所在的主机。如果你的数据库服务器是在同一台机器上的话请留空(SQLite不用)
注意
如果你是用 PostgreSQL 或者 MySQL,请确认你已经在指定的位置建立了数据库。在你的数据库交互命令符中输入“CREATE DATABASE database_name;”来创建数据库。
如果你是用SQLite,你不必做什么预先的创建准备——数据库会在需要的时候自动被创建。(所以说,如果要学Django的话,还是先用SQLite凑合着用吧,别的数据库指不定就出什么问题,特别是MS SQL SERVER,到目前为止好像都支持得不太好,N多人提交了补丁,都被官方视而不见,难道Django开发者这么仇视微软?好吧,也许是我小人之心了。)
当你修改 settings.py 的时候,要特别注意文件后面的 INSTALLED_APPS 设定。这个变量保存这个 Django 实例中所有的 Django 应用程序(applications,以下改称 apps)。这些Apps可以被多个项目使用,并且你可以打包发布它们以提供给其他人在他们的项目中使用。
默认情况下,INSTALLED_APPS 包含以下随着 Django 发布的 apps:
-
django.contrib.auth——一个身份验证系统
-
django.contrib.contenttypes——一个内容类型框架
-
django.contrib.sessions——一个 session 框架
-
django.contrib.sites——用一个 Django 安装管理多个站点的框架
正常情况下这些apps默认已经被包含了。
这些apps每个至少用一个数据库的表(table),所以在我们能使用它们之前需要在数据库中创建这些表。运行下面的命令:
python manage.py syncdb
syncdb 命令根据 INSTALLED_APPS 设定并且依照你的 settings.py 文件中的数据库设定创建任何必需的数据库表。你可以看到每个数据表创建的信息,并且你将接收到一个确认信息,询问你是否为身份验证系统创建一个超级用户的帐号。
如果你有兴趣,可以运行你的数据库命令行客户端,输入 \dt(PostgreSQL),SHOW TABLES; (MySQL),或者.schema (SQLite)来查看 Django创建的表。
最简单情况
就像我们上所说的,正常情况下默认的apps已经被包含了,但不是每个人都需要它们。如果你不需要它们其中某个,可以在运行 syncdb 之前从 INSTALLED_APPS 设定中注释掉或者删除相应的行。syncdb 命令将只创建 INSTALLED_APPS 中定义的apps。
未完待续
哎,翻译真累啊,我这个臭英语,大家凑合着看吧,我已经开始后悔了。
posted @ 2008-07-14 22:52
TsingFung Lee 阅读(19)
评论(0) 编辑 收藏 网摘 所属分类:
python学习