写你的第一个Django应用 | 第一部分
•原文地址:docs.djangoproject/en/dev/intro/tutorial01/
•Creating a project
•The development server
•Database setup
•Creating models
•Activating models
•Playing with the API
从示例学习。
开始之前,请确保 Django 已经安装完毕。先运行 Python,若正常,再输入 import django。如果运行无误,则说明 Django 已成功安装。
$ python
Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53)
[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>
新建项目(Project)
你可以将你的 project 放置在任何目录下,从终端中,用 cd 命令进入理想的目录,然后运行命令,django-admin.py startproject mysite,这将创建一个名为 mysite 的项目,在其文件夹中,还自动生成了 4 个文件:
•init.py
•manage.py
•settings.py
•urls.py
这些文件的作用是:
•init.py: 这是一个空文件,指示这个目录是 Python 的一个 package。
•manage.py: 一个命令行工具,可以用来对 Django 项目进行各种操作。
•settings.py: Django 项目的设置文件。
•urls.py: Django 项目 URL 声明文件;网站的 "目录"。
运行本地服务器
Django 本身包含一个用纯 Python 语言编写的轻量级服务器,便于快速开发你的项目,而不用花费过多精力设置服务器,比如 Apache,除非你准备好正式发布网站。
在 mysite 目录中,如果你紧跟着教程到此,可以直接运行命令 python manage.py
runserver,启动服务器。你可以看到屏幕出现:
0 errors found.
Django version 1.0, using settings 'mysite.settings'
Development server is running at 127.0.0.1:8000/
Quit the server with CONTROL-C.
此文字说明 Django 服务器已启动,可以用浏览器访问 127.0.0.1:8000/,如果一切正常,你将会看到 Django 的起始页。It worked!
设置数据库
接下来,编辑 settings.py 文件。这个文件是一个普通的 Python 模块,包含模块级别的变量
来规定 Django 设置。现在我们修改关于数据库的设置连接参数,去吻合你将使用的数据库。
•DATABASE_ENGINE -- 数据库引擎,常见的有:"postgresql_psycopg2"、"mysql" 或 "sqlite3"。还可选择 "postgresql" 或 "oracle"。
•DATABASE_NAME -- 数据库名称。若使用 SQLite3,数据库名称是数据库文件名和其保存的绝对路
径。
•DATABASE_USER -- SQLite3 不用修改,为空。
•DATABASE_PASSWORD -- 默认为 localhost。SQLite3 不用修改。
•DATABASE_HOST -- 默认为 default。SQLite3 不用修改。
使用 SQLite 数据库最简单,设置 DATABASE_ENGINE 为 sqlite3. 若使用其他类
型的数据库,在此应通过命令创建新的数据库。
当你编辑 settings.py 文件时,顺便注意一下文件底部 INSTALLED_APPS 设置,默认包含如下 apps:
•ib.auth
•ttypes
•ib.sessions
•ib.sites
这些是 Django 项目默认包含的应用,比如认证系统、内容类型框架、session 框
架、多网站管理的应用,这些 app 独立存在,可以根据需要保留或删除,也可应
用在其他项目中。
每个 app 至少对应一个数据库表,我们在 mysite 目录中运行如下命令来生成数
据库表:
python manage.py syncdb
syncdb 会搜索 INSTALLED_APPS 中的所有 app,生成必要的书库据表。你会看
到提示询问是否要为认证系统创建一个超级用户,输入 yes,根据提示完成。
创建模型
我们现在已经有了一个 mysite 的项目环境,接下来让我们做点事情。
你在 Django 写的每个应用都包含一个 Python package,以特定规则保存在你的 Python 目录中。Dja
ngo 通过一个工具来自动生成 app 应用的基本目录,所以你可以专心编写代码而不用担心如何创建目录。
•??目(project)与应用(app)
项目可以包含多个应用,一个应用可存在于多个项目中。应用,可以是 blog 系
统,公共记录数据库,或是一个简单的投票系统等等。
在这个教程中,我们将在 mysite 中创建简单的投票poll 应用。结果这个应用被绑定在项目中,也就是通过 mysite.polls 引用投票应用。在后面的教程中,我们会讨论如何包装发布这个应用。
为了创建名为 polls 的应用,确定在 mysite 的目录中,输入命令:
python manage.py startapp polls
这会创建一个名为 polls 的目录包含应用基本文件,其中包括:
polls/
__init__.py
models.py
views.py
我们通过修改 models.py 文件,来新建两个模型:Poll 和 Choice。模型 Poll 包含问题和发布时间。模型 Choice 包含选择文本和投票数;且每个选择被指定到一个投票上。事实上,即新建两个 Python 类。修改 models.py 文件为如下代码所示:
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
注:在 Django 0.96 之前的版本中,max_length 应改为 maxlength。
代码很直观。每个模型即是一个类,是 dels.Model 的子类。每个模型有不同数量的类变量,每个变量对应一个数据库字段。
每个字段是 Field 类的一个实例,比如,CharField 是字符字段,而 DateTimeField 是日期时
间字段。这会告诉Django 每个字段的类型。
每个字段实例的名称,比如 question 和 pub_date,也将是数据库中列的名称。
一些字段类需要参数。CharField,比如,就需要参数 max_length。这不仅应用在数据库表中,也是一个输入数据时验证条件。
最后,ForeignKey 表示数据库表的关系。这告诉Django 每个 Choice 对应一个
Poll。Django 支持所有普遍的数据库关系:多对一、多对多和一对一关系。
激活模型
这么简短的模型代码告诉Django 很多信息。有了它,Django 可以:
•为这个应用创建数据库表;
•创建 Python 数据库操作的 API,来调用 Poll 和 Choice 对象。
但是首先,我们需要告诉项目 polls 应用已被安装。
•哲学
Django 的 app 是可插拔的:你可以将同一 app 应用在多个项目中,你也可以发
布 app 为他人使用,因为 app 不必绑定至已有 Django 安装。
再次编辑 settings.py 文件,在 INSTALLED_APPS 中添加mysite.polls,如下所示: INSTALLED_APPS = (
'ib.auth',
'ttypes',
'ib.sessions',
'ib.sites',
'mysite.polls'
)
现在 Django 已经知道mysite 包含了 polls 应用。让我们运行另一个命令:
python manage.py sql polls
你应该会看到如下的代码(也就是 polls 对应的 SQL 语句):
BEGIN;
CREATE TABLE "polls_poll" (
"id" serial NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" timestamp with time zone NOT NULL
)
;
CREATE TABLE "polls_choice" (
"id" serial NOT NULL PRIMARY KEY,
"poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),
"choice" varchar(200) NOT NULL,
"votes" integer NOT NULL
);
COMMIT;
再次运行 syncdb 在数据库中创建模型表。
python manage.py syncdb
命令会搜索 INSTALLED_APPS 中还未加入数据库的应用,并生成对应的数据库
python新建项目教程表。屏幕应会显示:
Creating table polls_poll
Creating table polls_choice
Installing index for polls.Choice model
写你的第一个Django应用 | 第二部分
•原文地址:docs.djangoproject/en/dev/intro/tutorial02/
•启用管理后台
•运行开发时用服务器
•登录管理后台
•添加Poll 模型至管理界面
•探索管理后台
•自定义管理表格
•添加相关对象
第二部分紧接第一部分,继续完成投票应用,并关注 Django 的自动化管理后台。
启用管理后台
Django 管理后台默认不启用。启用管理后台,有三个步骤:
1.添加ib.admin到你的 INSTALLED_APPS 设置中。
2.运行 python manage.py syncdb 命令。因为你在 INSTALLED_APPS 中添加了新内容,
所以数据库需要更新。
3.编辑 mystie/urls.py 文件。取消如下三行前面的 "#" 号。
ib import admin
admin.autodiscover()
(r'^admin/(.*)', ),
运行开发时用服务器
现在让我们运行服务器,来探索一下管理后台界面。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论