首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Django首先式

2012-08-26 
Django第一式编写第一个Django的应用(第一部分)我们先编写一个最基本的投票应用,包含两个部分:1. 一个公告

Django第一式

编写第一个Django的应用(第一部分)

我们先编写一个最基本的投票应用,包含两个部分:
1. 一个公告的站点供用户查看投票的问题,和进行投票
2. 一个管理员站点,我们可以添加,修改,删除投票

在开始之前:
1. 确保Django已经装上,如果是ubuntu可以安装python-setuptools,
然后sudo easy_install django即可安装最新版的Django。
2. 可以在python的交互环境通过import django测试下,如果没有错误,
说明python安装正确。

1. 创建项目

使用django提供的创建项目的工具 自动生成django实例的一些代码,包括数据库的配置,
django的细节的选项,已经应用的特定的设置。

django-admin.py startproject mysite

mysite:包含了我们的项目,你可以任意命名你喜欢的名字
manage.py:命令行的工具,让我们可以通过各种方式和django项目进行交互。
mysite:对于我们项目来说就是一个python的包, 如果你想使用内部的任何东西如果settings
可以这样, import mysite.setttings
__init__.py一个空文件告诉python,这个目标要被看作成一个包。
settings.py:python的配置文件
urls.py:对于django项目中URL的声明。
wsgi.py 一个WSGI兼容的webserver的进入点。

进入mysite目录,启动server:
python manage.py runserver

这样我们就开启了django的默认的开发server,一个用python实现的轻量级的server。不要用在正式的项目环境。然后打开浏览器访问:http://127.0.0.1:8000/

如果想改变默认的端口:
python manage.py runserver 8080

如果想让其他的人也可以访问:
python manage.py runserver 0.0.0.0:8000

数据库的配置:
编辑mysite/settings.py,找到DATABASES:
1. ENGINE:数据的引擎支持,MySQL PostgreSQL,Oracle,SQLite等。
2. NAME:数据库的名字
3. USER:用户名
3.PASSWORD:密码
4.HOST:数据库的地址

时区的设置:
TIME_ZONE:Asia/Shanghai
语言的设置:
LANGUAGE_CODE:zh-cn

INSTALL-APP:已经安装的应用
django-contrib.auth:一个认证系统
django-contrib.contenttypes:内容类型
django.contrib.sessions:session框架
django.contrib.sites:管理多个站点在一个django安装里
django.contrib.messages:一个消息框架
django.contrib.staticfiles:一个管理静态文件的框架

配置好数据库之后,我们需要创建一些表,为了做这些,可以用:
python manage.py syncdb

创建模型
我们用django写的每一个应用都是由一个python的包组成。django可以自动生成一些基本的app的目录结构,所以我们可以更加专注在代码上而不是创建目录结构、

Projects VS app
项目和应用的区别?
一个项目包含了多个应用如(blog, poll),一个应用也可能在多个项目中

我们来创建一个投票的应用
python manage.py startapp polls

polls/
__init__.py
models.py
tests.py
views.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()

在settings中注册这个应用:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)

然后可以用:
python manage.py sql polls查看poll的sql
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;

然后生成table:
python manage.py syncdb

热点排行