做一個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