python django

---恢復內容開始---html

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'mysite.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'mysite.views.first_page'),
)

 urls是網站URL映射,說明什麼URL對應什麼模塊。 APP就是一個小型的WEB SERVER,python

render是將代碼與模板對應起來,能夠生成一套網頁或者是響應。django

一個用戶請求過來先到了project的urls.py上,而後檢查URLS,找到對應app的urls.py,運行urls對應的模塊編程

用render_to_response()簡化views層windows

http://www.nowamagic.net/academy/detail/1318431app

 

 

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello NowaMagic")

 

 每一個視圖函數至少要有一個參數,一般被叫做request。 這是一個觸發這個視圖、包含當前Web請求信息的對象,是類django.http.HttpRequest 的一個實例。在這個示例中,咱們雖然不用 request 作任何事情,然而它仍必須是這個視圖的第一個參數。函數

注意視圖函數的名稱並不重要;並不必定非得以某種特定的方式命名才能讓 Django 識別它。 在這裏咱們把它命名爲:hello,是由於這個名稱清晰的顯示了視圖的用意。一樣地,你能夠用諸 如:hello_wonderful_beautiful_world,這樣難看的短句來給它命名。 在下一小節(Your First URLconf),將告訴你Django是如何找到這個函數的。性能

這個函數只有簡單的一行代碼: 它僅僅返回一個HttpResponse對象,這個對象包含了文本「Hello world」。網站

這裏主要講的是: 一個視圖就是Python的一個函數。這個函數第一個參數的類型是HttpRequest;它返回一個HttpResponse實例。爲了使一個 Python的函數成爲一個Django可識別的視圖,它必須知足這兩個條件。 (也有例外,可是咱們稍後纔會接觸到。)url

 

from django.http import HttpResponse
import datetime

def hello(request):
    return HttpResponse("Hello NowaMagic")

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

 

 可是若是要import一個不一樣目錄的文件(例如b.py)該怎麼作呢?

首先須要使用sys.path.append方法將b.py所在目錄加入到搜素目錄中。而後進行import便可,例如:

import sys 
sys.path.append('c:\xxxx\b.py') # 這個例子針對 windows 用戶來講的 

 面的代碼有時會找不到模塊或者包(ImportError: No module named xxxxxx),這是由於:

sys模塊是使用c語言編寫的,所以字符串支持 '\n', '\r', '\t'等來表示特殊字符。因此上面代碼最好寫成:

sys.path.append('c:\\xxx\\b.py') 
# 或者
sys.path.append('c:/xxxx/b.py') 

 這樣能夠避免由於錯誤的組成轉義字符,而形成無效的搜索目錄(sys.path)設置。

在前面瞭解過 Python 的序列,特別是 list 和 tuple 以後,咱們就能夠解釋一些 Python 裏特有的一些編程技巧,額……好比多重賦值

>>> t = 1,2,3
>>> t
(1, 2, 3)
>>> a,b,c = t
>>> a
1
>>> b
2
>>> c
3

 Python xrange與range的區別

xrange 用法與 range 徹底相同,所不一樣的是生成的不是一個list對象,而是一個生成器。

>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]

 由上面的示例能夠知道:要生成很大的數字序列的時候,用xrange會比range性能優不少,由於不須要一上來就開闢一塊很大的內存空間。

for i in range(0, 100): 
    print i 

for i in xrange(0, 100): 
    print i 

 xrange 和 range 這兩個基本上都是在循環的時候用。結果同樣

相關文章
相關標籤/搜索