第一个Django应用

运行环境 Windows 7+ Python 2.7 + Django 1.6
准备工作

开始之前,请确保 Django 已经安装完毕。先运行 Python,若正常,再输入 import
django。如果运行无误,则说明 Django 已成功安装。

e:\work\python\mysite>python
Python 2.7.4 (default, Apr  6 2013, 19:54:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import django
>>>

* 创建工程:可以将project 放置在任何目录下,从CMD下运行命令,python C:\Python27\Lib\site-packages\django\bin\django-admin.py startproject mysite
这将创建一个名为 mysite 的项目。(注意:如果发现未能创建项目,可能是又由于直接用django-admin.py时,系统默认取了错误的django-admin.py文件!所以只要写全路径就不会出现此问题。)


在其文件夹中,还自动生成了 4 个文件,这些文件的作用是::

init.py: 这是一个空文件,指示这个目录是 Python 的一个 package。
manage.py: 一个命令行工具,可以用来对 Django 项目进行各种操作。

 settings.py: Django 项目的设置文件。
 urls.py: Django 项目 URL 声明文件;网站的 "目录"。

* 启动调试服务器 进入mysite目录, 执行 python manage.py runserver 127.0.0.1:9527 (如果不用指定ip与端口号,则默认为127.0.0.1:8000)
e:\work\python\mysite>python manage.py runserver 127.0.0.1:9527
Validating models...

0 errors found
June 28, 2014 - 16:44:26
Django version 1.6.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

注:如果出现django系统出现 Error: [Errno 10013],说明端口被占用,酷狗音乐恰好占用了django默认的8000端口...

*在浏览器中访问 http://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. 若使用其他类型的数据库,在此应通过命令创建新的数据库。
* 可以修改时区配置
TIME_ZONE = 'Asia/Shanghai
当你编辑 settings.py 文件时,顺便注意一下文件底部 INSTALLED_APPS 设置,默认包含如下
 MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
这些是 Django 项目默认包含的应用,比如认证系统、内容类型框架、session 框架、多网站管理的应用,这些 app 独立存在,可以根据需要保留或删除,也可应用在其他项目中。

*每个 app 至少对应一个数据库表,我们在 mysite 目录中运行如下命令来生成数据库表:
E:\work\python\mysite>python manage.py syncdb
syncdb 会搜索 INSTALLED_APPS 中的所有 app,生成必要的数库据表。你会看到提示询问是否要为认证系统创建一个超级用户,输入 yes,根据提示填写相关内容,如下:

E:\work\python\mysite>python manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session

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):yes
Username (leave blank to use 'ad'):
Email address: 1500527177@qq.com
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

E:\work\python\mysite>

*为了创建名为 polls 的应用,确定在 mysite 的目录中,输入命令:
E:\work\python\mysite>python manage.py startapp polls
这会创建一个名为 polls 的目录包含应用基本文件,其中包括:
polls/
admin.py
__init__.py
models.py
tests.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。
代码很直观。每个模型即是一个类,是 django.db.models.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 = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls'
)
注意:添加的'polls'是相对于建立项目时的工程目录,即E:\work\python\mysite
现在 Django 已经知道 mysite 包含了 polls 应用。让我们运TypeError: Error when calling the metaclass bases
    module.__init__() takes at most 2 arguments (3 given)行另一个命令:
E:\work\python\mysite>python manage.py sql polls
你应该会看到如下的代码(也就是 polls 对应的 SQL 语句):
E:\work\python\mysite>python manage.py sql polls
BEGIN;
CREATE TABLE "polls_poll" (
    "id" integer NOT NULL PRIMARY KEY,
    "question" varchar(200) NOT NULL,
    "pub_date" datetime NOT NULL
)
;
CREATE TABLE "polls_choice" (
    "id" integer NOT NULL PRIMARY KEY,
    "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),
    "choice" varchar(200) NOT NULL,
    "votes" integer NOT NULL
)
;

COMMIT;

*再次运行 syncdb 在数据库中创建模型表。
E:\work\python\mysite>python manage.py syncdb

命令会搜索 INSTALLED_APPS 中还未加入数据库的应用,并生成对应的数据库
表。屏幕应会显示:
E:\work\python\mysite>python manage.py syncdb
Creating tables ...
Creating table polls_poll
Creating table polls_choice
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)





写你的第一个Django应用 | 第二部分
• 原文地址:http://docs.djangoproject.com/en/dev/intro/tutorial02/
• 启用管理后台
• 运行开发时用服务器
• 登录管理后台
• 添加 Poll 模型至管理界面
• 探索管理后台
• 自定义管理表格
• 添加相关对象
第二部分紧接第一部分,继续完成投票应用,并关注 Django 的自动化管理后台。
启用管理后台
Django 管理后台默认不启用。启用管理后台,有三个步骤:
1. 添加 django.contrib.admin 到你的 INSTALLED_APPS 设置中。
2. 运行 python manage.py syncdb 命令。因为你在 INSTALLED_APPS 中添加了新内容,
所以数据库需要更新。
3. 编辑 mystie/urls.py 文件。取消如下三行前面的 "#" 号。
from django.contrib import admin
admin.autodiscover()
(r'^admin/(.*)', admin.site.root),
运行开发时用服务器
现在让我们运行服务器,来探索一下管理后台界面。
还记得吗?在第一部分我们说过,运行服务器我们在终端输入如下命令:
python manage.py runserver
好的,现在开启浏览器,在地址栏中输入本地域名,比如:http://127.0.0.1:8000/admin/ 现在
你应该可以看到管理后台的登录界面:

登录管理后台
现在,试着登录。你已经在教程第一部分时创建过一个超级用户,记得吗?登录后,你应该会看到如下界面














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值