Django 1.4 Python 2.7菜鳥入門
這次我用的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 HttpResponsefrom 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),
)
注意這裡正規表示式的運用,符號^和$分別表示表示式的開頭和末尾。
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,裡面的內容講的很詳細。
相關文章
- java菜鳥入門Java
- ESlint-菜鳥入門EsLint
- React菜鳥入門之setStateReact
- 菜鳥的Hadoop快速入門Hadoop
- c#入門教程(菜鳥級)C#
- C++語言菜鳥快速入門C++
- Golang快速入門:從菜鳥變大佬Golang
- 菜鳥筆記之PWN入門(1.0.0)前言筆記
- 神經網路的菜鳥入門祕籍神經網路
- 跟著菜鳥學pythonPython
- 【菜鳥教程筆記】Python字串筆記Python字串
- python基礎教程|菜鳥教程Python
- 手把手 | 神經網路的菜鳥入門祕籍神經網路
- 菜鳥學Python之雜湊表Python
- 菜鳥教程python 學習進度Python
- Python從菜鳥到高手:分片(Slicing)Python
- 菜鳥學python之用python找指定檔案Python
- python菜鳥教程學習5: python運算子Python
- Python系列之-1、Django入門PythonDjango
- 菜鳥求助!!!
- 菜鳥(python 測驗-函式)(¥35)Python函式
- python菜鳥教程學習9:函式Python函式
- Linux“菜鳥”到“菜鳥的一些建議Linux
- 菜鳥市場
- Python小白菜鳥從入門到精通Python
- python菜鳥開發日記-基於pyhon及django進行公司打卡系統的破解PythonDjango
- python菜鳥教程學習13:檔案操作Python
- Django入門Django
- [菜鳥SpringCloud入門]第四章:遠端呼叫服務實戰SpringGCCloud
- Python學習之路17-Django入門PythonDjango
- Python Django框架是什麼?Python學習入門!PythonDjango框架
- hashmap == 菜鳥驛站?HashMap
- 菜鳥看前端(Git)前端Git
- 菜鳥學Python之 _, __ 和 __xx__的區別Python
- python菜鳥教程學習3:基礎語法Python
- python菜鳥教程學習1:背景性學習Python
- Linux菜鳥到老鳥的那些建議Linux
- 菜鳥筆記之PWN入門(1.1.0)ELF 檔案格式和程式段解析(簡版)筆記
- 菜鳥初嘗快速冪