from django.db import models安裝Django
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()
建議安裝python2.5及以上版本,但不建議使用python3.0。
數據庫如果使用sqllite,python已經內建,不需另行安裝,如果需要使用myslq或其他數據庫,需要自行安裝。接下來安裝Django(在widnwos下):
1、從http://www.djangoproject.com/download/下載Django
2、在windwos下使用python setup.py install 安裝(我原想使用python setup.py develop安裝,沒成功),前提是設置好python環境和已安裝setuptools。
3、將python安裝目錄下lib\site-packages\django\bin\django-admin.py 復制到python安裝目錄下的\scripts\目錄。
下面可以測試一下,啟動cmd窗口:
C:\Documents and Settings\Administrator>python
>>> import django
>>> django.VERSION
(1, 2, 0, 'rc', 1)
安裝OK。開始創建第一個project吧。
1、選定一個目錄,啟動cmd窗口:
F:\temp>django-admin.py startproject mysite2
F:\temp>
這將在當前目錄下新建一個project,名字為mysite2(注意不要使用"django"等保留字作為project名稱),目錄結構為:
2010-05-30 13:29 <DIR> .
2010-05-30 13:29 <DIR> ..
2010-05-30 13:29 557 manage.py
2010-05-30 13:29 3,387 settings.py
2010-05-30 13:29 561 urls.py
2010-05-30 13:29 0 __init__.py
4 個文件 4,505 字節
2 個目錄 29,717,716,992 可用字節
- __init__.py:暫時是空的,標識這個目錄是一個python package。
- manage.py: Django的命令行工具集,使用方法:python manage.py ***
- settings.py: project 的配置文件
- urls.py: project的url路徑管理配置文件
2、啟動http server:
F:\temp\mysite2>python manage.py runserver
Validating models...
0 errors found
Django version 1.2 rc 1, using settings 'mysite2.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
打開web browser,輸入地址http://127.0.0.1:8000/,可以看到server已經啟動了。當然,如果你希望換一個端口,可以使用:
python manage.py runserver 端口號
3、接著配置database:
打開settings.py,在database節點下:
-
ENGINE 數據庫引擎名稱,可以是'django.db.backends.postgresql_psycopg2'或 'django.db.backends.mysql' 或 'django.db.backends.sqlite3'
-
NAME 數據庫名稱, 如果使用sqlite,這里就是db文件絕對路徑,比如f:/temp/mysite/data.db
-
USER 數據庫用戶名,sqlite不需要
-
PASSWORD 密碼,sqlite不需要
-
HOST 數據庫主機ip,sqlite不需要
建議使用sqlite。如果使用其他如PostgerSQL、MySQL等,在配置之前要確保先在數據庫中已建立相關項目。
'django.contrib.auth',用戶認證
'django.contrib.contenttypes',內容管理?
'django.contrib.sessions',session控制
'django.contrib.sites',多site管理
如果用不到該app,可以注釋掉,這將不在database中建立相關管理tables。然后使用:
python manage.py syncdb
建立相應的tables。
4、在mysite2目錄下,新建一個自己的app:
python manage.py startapp polls
將新建一個polls目錄,內容如下:
2010-05-30 14:07 <DIR> .
2010-05-30 14:07 <DIR> ..
2010-05-30 14:07 60 models.py
2010-05-30 14:07 537 tests.py
2010-05-30 14:07 27 views.py
2010-05-30 14:07 0 __init__.py
5、創建models:
編輯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()
這里有兩個model,Poll和Choice,還存在一個one Poll to many Choice關系。
在setting.py 中將polls 加入到installed app 節點中,然后使用python manage.py syncdb 將在database中新建相應的tables。table name 分別是:
polls_poll,polls_choice。
當然還有其他一些manage command:
- python manage.py validate -- 校驗model內容是否正確
- python manage.py sqlcustom polls -- 輸出polls app中的model相關的sql相關語句
- python manage.py sqlclear polls -- 輸出刪除table的相關sql
- python manage.py sqlindexes polls -- 輸出建立index的相關sql
- python manage.py sqlall polls -- 是sql, sqlcustom, and
sqlindexes 輸出內容的組合
6、使用django shell:
python manage.py shell
這個cmd背后做了兩件事:一是將mysite2加入到sys.path中去;二是新建了DJANGO_SETTINGS_MODULE環境變量,可以引用settings.py中的配置內容。
接下來就可以測試了。