天天看點

Django學習筆記-Demo

做一個demo

還是在實踐中學習吧

一、建立一個項目

django-admin startproject project_name
//or
django-admin.py startproject project_name           

網上說如果是pip安裝的要用

django-admin.py

,但是我在windows上仍然是使用

django-admin startproject project_name           

在linux伺服器上也是使用的這個指令,不用加上

.py

其目錄結構如圖所示

這裡要回想上一篇的學習:

setting.py

是Django的配置檔案,比如DEBUG的開關,靜态檔案的位置等等。

urls.py

是Django的中設定網址的入口,關聯到對應的

views.py

中的一個函數。就是當我們通路一個網址的時候,就是使用者發送一個請求,被Django攔截到了,然後用對應的函數(好像是根據name對應的)進行處理。

wsgi.py

是Django中部署伺服器的時候要用到的。

二、建立一個應用

python manage.py startapp newapp1           

現在的目錄如下:

然後要把我們建立的app加到

setting.py

中的

INSTALL_APPS

中:

修改

demo_first/demo_first/setting.py

:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'newapp1',
]           

那麼這一步的作用呢?建立的app如果不加入到

INSTALL_APPS

中的話,Django就不能自動找到app中的模闆檔案(也就是newapp1/templates/html,css)和靜态檔案(newapp1/static/檔案)

三、定義視圖函數(通路頁面時候的内容)與函數對應的URL

在newapp1檔案加下,打開

views.py

,修改其中的代碼:

# -*- coding: utf-8 -*-
from django.http import HttpResponse


def index(request):
    return HttpResponse(u"接收這個請求後,傳回的資料")           

相應的在

urls.py

中,我們加入了一條規則:

from django.conf.urls import url
from django.contrib import admin
from newapp1 import views as newapp1_views

urlpatterns = [
    # 新加入的規則,當連結除了ip和端口号,沒有其他資訊的時候,對應index函數
    url(r'^$', newapp1_views.index),
    url(r'^admin/', admin.site.urls),
]           

上面這段程式就是在我們發送

127.0.0.1:8000

這個請求的時候,執行index函數,并傳回一些資訊。

在cmd中執行

python manage.py runserver

效果如圖所示:

四、出現的一些問題

如圖所示:

這裡還提示用CTRL + BREAK,但是我習慣了CTRL + C結束了。

那麼這個預設的8000端口就會被占用。

當我runserver另外一個django項目的時候,發現打開的是之前的一個項目。

然後就要找到之前的程序,kill掉在重新布置就好了。

參考另外一篇部落格:

http://blog.csdn.net/u012442157/article/details/78884417