红联Linux门户
Linux帮助

Django Docs part 1(初识Django)

发布时间:2015-01-08 11:54:22来源:linux网站作者:leequery

首先确保django已安装,我们可以尝试在python环境下import django,如果命令执行成功,则表示安装成功。

接着来看看如何建立一个新的项目:

通过一个命令来建立新项目:django-admin.py startproject mysite

执行过以后在当前目录将会生成新目录mysite,在其目录下会生成如下文件:__init__.py,manage.py,setting.py,urls.py。

各个文件的意义如下:

*  __init__.py:这文件是空的,意义体现在python将审核该文件来确定该包为可引用的包。

*  manage.py:该文件为一个命令行的工具,用户可通过该工具以交互式来管理运行该项目。

*  setting.py: 该项目的配置文件,django配置文件将告诉你该项目是如何运转的。

* urls.py: 该项目的url声明文件,用于匹配客户端请求链接。

下一步来看看运行起来的django项目:

之前提到的manage.py在这将很有用处,执行: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自带的web,只限于测试开发,如果用于生产环境中,则建议使用其他的产品级的web服务器,如apache。

这样当你在浏览器中访问http://127.0.0.1:8000/,你将会看到Welcome to Django. it works.

如何来修改ip和端口来访问呢,通过如下命令则可实现:

----修改访问端口

python manage.py runserver 8080

----修改IP

python manage.py runserver 192.168.1.100:8000

接下来接触到的将是database(数据库)的设置:

django任何的配置参数将通过setting.py来实现,如下:

* Engine -- 定义使用哪种数据库,目前DJANGO支持如下数据库:postgresql_psycopg2,postgresql,mysql,sqlite3,Oracle.

* Name -- 此处为数据库中此项目使用的库名。如果使用的是sqlite3,在你计算机里面会有一个文件,这里必须是一个完整的路径,如果文件不存在,系统将自动生成该文件。win下的为:c:/home/users/django/sqlite3.db

* USER -- 数据库的用户名,如果使用的sqlite3,此处为空值;

* PASSWORD -- 数据库密码,如果使用的是sqlite3,此处为空值;

* HOST -- 数据库所在主机,如果与项目为同一台物理主机,此处为空值。

如果你是个数据库新手,django建议你使用自带的数据库sqlite3。python2.5以后的版本都支持sqlite3.

如果你使用了Postgresql或者Mysql,请确保建立了项目将要使用的数据库,建库语句为"create database database_name";

django中通过命令:python manage.py syncdb 来实现数据库建表。

接下来看看如何创建项目模块:

现在我们在之前的mysite下建立一个新的模块polls,如下:

python manage.py startapp polls

这样我们就成功创建了polls模块,polls目录下将会有如下文件:__init__.py,models.py,tests.py,views.py。

下面我们编辑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()

Poll和Choice都为models.Model的子类,charfield及datetimefield为表中的字段类型,像question和pub_date为地段名。

django中也支持数据库多对一,多对多,一对一。

Poll和Choice两个模块已经建立,如何让django生成他们相对应的表呢,这时,我们再一次编辑setting.py这个文件,让mysite知道polls的存在,在INSTALLED_APPS中添加polls,然后执行如下命令:

python manae.py sql polls

此时数据库中创建了polls_poll和polls_choice两个表。

如果你有兴趣也可以登陆django官网了解其他命令:

* python manage.py validate

* python manage.py sqlcustom polls

* python manage.py sqlclear polls

* python manage.py sqlindexes polls

* python manage.py sqlall polls

表建好以后,我们再次运行python manage,py syncdb 确保数据库表被建立。