Django 1.4 Python 2.7菜鳥入門

來源:互聯網
上載者:User

這次我用的Django是1.4的,python是2.7的,本篇文章的主要目的是為那些剛剛學習django的同學提供一個好的開始。建議參考djangobook。

我們的主要任務是這樣的:

在地址欄輸入localhost:8000/currenttime/,頁面上在正中央顯示當前的系統時間,在url後面加上一個數字,那麼會在頁面下顯示該值個小時之後系統的時間。

關於Django和python的安裝我在這裡便不再多講,django可以使用easy_install工具來安裝。注意這裡1.4的django和以往版本的django在組建目錄上結構略有不同,它把該工程的設定檔以及urlconfig和wsgi放在一個檔案夾中,相當於一個應用程式一樣,我想它這樣做的目的是想使得工程目錄的結構更加優雅吧。

好了開始做吧:

1,使用django-admin.py startproject myTime建立一個工程

2,在這個任務中我們不需要使用資料庫,但是我們要明白工程開始的時候各個檔案的作用是什麼,如下:

__init__.py :讓 Python 把該目錄當成一個開發包 (即一組模組)所需的檔案。
manage.py :一種命令列工具,可讓你以多種方式與該 Django 項目進行互動。
settings.py :該 Django 項目的設定或配置。
urls.py :該 Django 項目的 URL 聲明,即 Django 所支撐網站的內容列表

這些都是背景東西,關於前台,我們還需要一個view.py的檔案,來使得特定的url觸發不同的介面顯示。在myTime下(裡面的)建立一個view.py。

3,我們在view中建立的是視圖函數,這其中的代碼如下所示:

from django.http import HttpResponse
from django.template.loader import get_template
from django.template import *
from django.shortcuts import render_to_response
import datetime

def current_datetime(request):
    current_time = datetime.datetime.now()
    #t = get_template('first.html')
    #c = Context({"current_time":now})
    #html = t.render(c)
    #return HttpResponse(html)
    return render_to_response('first.html',locals())
def time_ahead(request,off):
    current_time = datetime.datetime.now()
    off = int(off)
    da = datetime.datetime.now() + datetime.timedelta(hours=off)

    return render_to_response("child.html",locals())

這是兩個視圖函數,下面我們把這兩個視圖函數和url關聯起來,其中的html檔案是我們的介面模板,有關模板的介紹請參考djangobook,內容太多一時半會也說不清楚,其實就是在html中加入了一些代碼,這些代碼可以是變數和函數標籤,或者是過濾器。關於模板的建立我們接下來要講,但是我們需要現在myTime(外面的)建立一個templates檔案夾,並且在裡面建立first.html和child.html兩個檔案,並且在setting.py中講template_dir做修改,在其中加入如下代碼:

import os.path

ROOT_PATH = os.path.dirname(_file_)

template_dir設定為

os.path.join(ROOT_PATH, '../templates/').replace('\\','/'),

注意由於這裡的目錄結構和以往版本的不同,所以這裡需要加上..

4,修改url

from django.conf.urls import *
from mysite.view import *

urlpatterns = patterns('',

 url(r"^currenttime/$",current_datetime),
    url(r"^currenttime/(\d{1,2})/",time_ahead),
)

注意這裡Regex的運用,符號^和$分別表示運算式的開頭和末尾。

5,設定模板介面,兩個介面的代碼分別為:

first.html:

<html>
<head>
<title>
my first template html page!
</title>
</head>
<body>
<center>
the time of now is {{current_time}}
<br />
<br />
{%block footer%}
this is my footer
{%endblock%}
</center>
</body>
</html>

第二個介面為child.html:

{%extends "first.html"%}
{%block footer%}
this is my child footer
<br />
<br />
the real time ahead of {{off}} is {{da}}
{%endblock%}

最後運行一個便可以了,還是建議參考djangobook,裡面的內容講的很詳細。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.