(一)關于Django
Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。
Ubuntu下的安裝:一般都自帶Python的。網上教程比較多了....
dizzy@dizzy-pc:~$ pythonPython 2.7.3 (default, Apr 20 2012, 22:44:07) [GCC 4.6.3] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import django>>> help(django)VERSION = (1, 6, 4, 'final', 0)#可以查看django版本等信息。
(二)第一個Django的app
#環境:Python2.7,Django1.6,Ubuntu12.04
Python 及 Django 安裝成功之后,就可以創建Django工程了
(1)教你開始寫Django1.6的第1個app
#先創建一個文件夾dizzy@dizzy-pc:~$ mkdir Pythondizzy@dizzy-pc:~$ cd Python#然后創建工程dizzy@dizzy-pc:~/Python$ django-admin.py startproject mysitedizzy@dizzy-pc:~/Python$ cd mysite#然后這個工程就可以啟動服務了dizzy@dizzy-pc:~/Python/mysite$ python manage.py runserverValidating models... 0 errors foundJuly 23, 2014 - 14:17:29Django version 1.6.4, using settings 'mysite.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CONTROL-C.#這樣,打開瀏覽器訪問: 便可看到: It Worked! 關閉服務:ctrl+c #新創建的項目里面會有:manage.py文件,mysite文件夾#在mysite文件夾里面會有:__init__.py,settings.py,urls.py,wsgi.py四個文件 #__init__.py是一個空文件,#setting.py 是項目的配置文件。需要修改兩個地方,這里使用默認的SQLite3數據庫LANGUAGE_CODE = 'zh-cn' #原:en-usTIME_ZONE = 'Asia/Shanghai' #原:UTC #配置完之后,便可以創建數據表了dizzy@dizzy-pc:~/Python/mysite$ python manage.py syncdb#創建是還要設置一個超級管理員,用于后臺登錄。#設置完之后,開啟服務,便可進入后臺管理界面了:http://127.0.0.1:8000/admin/
(2)教你開始寫Django1.6的第1個app
#創建一個用于投票的app。#進入mysite工程根目錄,創建appdizzy@dizzy-pc:~/Python/mysite$ python manage.py startapp pollsdizzy@dizzy-pc:~/Python/mysite$ ls pollsadmin.py __init__.py models.py urls.py views.py #這樣。Django已經生成了,app通常所需的模板文件。
下面創建兩個models。Poll 和 Choice
dizzy@dizzy-pc:~/Python/mysite$ vim polls/models.py
修改文件如下:
from django.db import models # Create your models here. 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_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)#基本創建model過程就是這樣,細節還要深入研究!然后修改工程的配置文件setting.py,在INSTALLED_APP元組下面添加剛才創建的app:polls
dizzy@dizzy-pc:~/Python/mysite$ vim mysite/settings.py INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls',) #可以使用 python manage.py sql polls 查看app的建表SQL#使用 python manage.py syncdb 進行創建數據庫表dizzy@dizzy-pc:~/Python/mysite$ ./manage.py sql pollsBEGIN;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_text" varchar(200) NOT NULL, "votes" integer NOT NULL); COMMIT; #這樣就可以通過設置model讓Django自動創建數據庫表了 要想在后臺admin中管理polls。還需要修改app下面的admin.py 文件。from django.contrib import admin # Register your models here. from django.contrib import adminfrom polls.models import Choice,Poll class ChoiceInLine(admin.StackedInline): model = Choice extra = 3 class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields':['question']}), ('Date information', {'fields':['pub_date'],'classes':['collapse']}), ] inlines = [ChoiceInLine] admin.site.register(Poll,PollAdmin) #這部分代碼,大體能看懂,具體的規則還要稍后的仔細研究。##這部分代碼,由于拼寫失誤,導致多處出錯。細節決定成敗!!這樣再重啟服務,就能在后臺管理polls應用了。
(3)視圖和控制器部分
前面已經完成了model(M)的設置。剩下的只有view(V)和urls(C)了。Django的視圖部分,由views.py 和 templates完成。
在polls中,我們將創建4個視圖: