[Django]编写第一个Django app,第一部分——创建项目

转载:http://www.cnblogs.com/reallypride/archive/2008/11/28/1343356.html

编写第一个Django app,第一部分——创建项目

让我们通过例子来学习。

通过这个指导教程,我们将一步步地教你创建一个简单的投票系统。
这个系统分为两部分:
1.一个公共的页面让人们投票和查看投票结果。
2.一个管理员页面让你添加,修改和删除投票。

我们假定你已经安装了Django。你可以运行Python编译器并输入import django
来测试Django是否已经安装。如果命令运行成功,没有错误,说明Django已经安装了。

新建项目

如果你是第一次使用Django,你必须确保一些初始化已经完成。也就是,你需要自动生成
一些代码来创建Django项目——一系列的Django设置实例,包括数据库配置,Django特定
的选项和程序特定的设置。

使用命令行,cd进入你要保存你的代码的文件夹,运行命令django-admin.py startproject mysite。
它会在当前文件夹里创建一个mysite文件夹。

如果你是通过python setup.py安装Django的话,django-admin.py将会在你的系统路径下。
如果不在你的路径下,你可以在site-packages/django/bin中找到它,site-packages是你的Python的
安装目录。
(对于上面这段话我不是很理解,我是把django-admin.py拷贝到存放代码的文件夹下,然后运行命令
django-admin.py startproject mysite来创建项目的)。

让我们看一下startproject生成了些什么:
mysite/
 __init__.py
 manage.py
 settings.py
 urls.py
这些文件是:
1.__init__.py:一个空文件,它用来告诉Python把这个文件夹看成是一个Python包。(如果你是一个初学者,
  阅读Python的官方文档来了解更多的关于包的内容。)
2.manage.py:一个实用的命令行,它让我们通过各种各样的途径和Django项目进行交互。
3.settings.py:设置/配置Django项目
4.urls.py:Django项目的URL映射。

开发版服务器

让我们确认这些工作。切换到mysite文件夹,运行命令python manage.py runserver。你将会看到命令行
输出下面的信息。
Validating models…
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

你已经启动了Django的开发版服务器,一个用纯Python写的轻量级Web服务器。我们已经把它包含在Djangok ,
所以你能快速地开发项目而不用配置产品服务——例如Apache——直到你将要发布产品。

现在这是一个好的时机来注意:不要使用这个服务器作为产品的运行环境。它仅仅是在开发的时候使用。
(我们的业务是开发Web框架而不是Web服务器。)
现在这个服务器已经运行,使用你的浏览器浏览http://127.0.0.1:8000/
你将会看到一个"Welcome to Django"的亮蓝色粉蜡笔的页面。它已经工作了。

改变它的端口
默认情况下,runserver命令在8000端口启动开发版服务器。如果你想改变服务器的端口,把端口号作为
命令行参数传入。例如,这条命令在8080端口中启动服务器:
python manage.py runserver 8080

(在我的电脑上,使用python manage.py runserver启动服务器会报错,把命令前面的python去掉
就能正常运行了,不知道是怎么回事。)

准备数据库

现在,编辑settings.py。它是一个包含有与Django设置相对应的模块级变量的常规的Python模块。
修改这些设置以匹配你的数据库连接参数:
1.DATABASE_ENGINE—— 'postgreSQL_psycopg2', 'mySQL' or 'sqlite3'中的一个,
  其它的也适用。
2.DATABASE_NAME——数据库的名字。如果你使用的是SQLite,数据库是你电脑上的一个文件;因些,
  DATABASE_NAME就是文件完整的绝对路径,包含文件名。如果文件不存在,它会在你第一次使用数据库
  的时候创建。
  当指定文件的路径时,要使用斜线,即使是在windows下(如C:/homes/user/mysite/sqlite3.db)。
3.DATABASE_USER——你的数据库的用户名(SQLite不使用)。
4.DATABASE_PASSWORD——你的数据库的密码(SQLite不使用)。
5.DATABASE_HOST——数据库所在的主机。如果你的数据库在相同的物理机器上,保留它为空字符串(SQLite不使用)。

如果你是个数据库新手,我们建议你使用简单的SQLite(把DATABASE_ENGINE设置为'sqlite3')。
SQLite是Python2.5和更新的版本的一部分,因此你不需要安装任何东西。
如果你使用的是PostgreSQL或者MySQL,要确保你已经创建了数据库。要创建数据库可以在数据库的交互对话框中
使用命令"Create DATABASE database_name;" 。
如果你使用的是SQLite,你不需要预先创建任何东西——数据库会在需要它的时候自动创建。

当你编辑settings.py的时候 ,注意下面的INSTALLED_APPS的设置。片个变量保存所有已经激活的Django应用
程序的Django实例的名字。Apps能在多个项目中使用,你可以打包和发布它们,让它们在其它项目中使用。

默认情况下,INSTALLED_APPS包含有下面的apps,它们都是来自于Django:
1.django.contrib.auth — 用户验证系统。
2.django.contrib.contenttypes — 内容类型框架。
3.django.contrib.sessions — session框架。
4.django.contrib.sites — 使用一个Django管理多个站点的框架。
这些应用程序默认是包含的,方便通常情况下的使用。

每个应用程序都需要使用和至少一个数据表,因些我们在使用它们之前要先创建数据表。0
要做这些事情,使用下面的命令即可:
python manage.py syncdb

syncdb命令在你的settings.py文件中查找NSTALLED_APPS的设置并使用数据库的设置创建所需要的数据表。
你将会看到每个数据表的创建信息,并且如果你为验证系统创建超级用户帐号的话,你将会看到一个对话框。
继续,并完成它。

如果你感兴趣,运行你的数据库客户端命令行,输入\dt (PostgreSQL), SHOW TABLES; (MySQL),
或者 .schema (SQLite)来显示Django创建的表。

就如上面所说的那样,默认应用程序包含这些是为了一般情况下的需求,但并不是每个人都需要使用它们。
如果你不需要它们,你可以把它们从INSTALLED_APPS中注释掉或者删除掉,不过这要在你运行syncdb命令之前。
syncdb命令只创建在INSTALLED_APPS中的apps的表。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏