国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

以一個投票程序的實例來講解Python的Django框架使用

2019-11-25 16:55:46
字體:
來源:轉載
供稿:網友

(一)關于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個視圖: