Django學習筆記2
阿新 • • 發佈:2019-02-11
新建一個專案(project), 名稱為 mysite
- django-admin startproject myblog
執行後,如果成功的話, 我們會看到如下的目錄樣式
- myblog
- ├── manage.py
- └── myblog
- ├── __init__.py
- ├── settings.py
- ├── urls.py
- └── wsgi.py
我們會發現執行命令後,新建了一個 myblog 目錄,其中還有一個 myblog 目錄,這個子目錄 myblog 中是一些專案的設定settings.py 檔案,總的urls配置檔案
到外層那個 myblog 目錄下(不是myblog中的myblog目錄)
新建一個應用(app), 名稱叫 blog
- python manage.py startapp blog # blog 是一個app的名稱
myblog中多個一個 blog 資料夾,其中有以下檔案。
- blog/
- ├── __init__.py
- ├── admin.py
- ├── models.py
- ├── tests.py
- └── views.py
把我們新定義的app加到settings.py中的 INSTALL_APPS中
- INSTALLED_APPS = (
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- 'blog',
- )
新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動找到app中的
定義檢視函式(訪問頁面時的內容)
我們在blog這個目錄中,把views.py開啟,修改其中的原始碼,改成下面的- #coding:utf-8
- from django.http import HttpResponse
- def index(request):
- return HttpResponse("hello")
第一行是宣告編碼為utf-8, 因為我們在程式碼中用到了中文,如果不宣告就報錯.
第二行引入HttpResponse這個類,它是用來向網頁返回內容的,就像Python中的 print 一樣,只不過 HttpResponse 是把內容顯示到網頁上。
義了一個index()函式,第一個引數必須是 request,與網頁發來的請求有關,request 變數裡面包含get或post的內容,使用者瀏覽器,系統等資訊在裡面函式返回了一個 HttpResponse 物件,可以經過一些處理,最終顯示幾個字到網頁上。
注意:每個請求對應一個函式,函式必須返回一個響應
函式必須存在一個引數,一般約定為request
每個相應(函式)對應一個URL
那問題來了,我們訪問什麼網址才能看到剛才寫的這個函式呢?怎麼讓網址和函式關聯起來呢?
定義檢視函式相關的URL(網址)(即規定 訪問什麼網址對應什麼內容)
開啟 myblog/myblog/urls.py 這個檔案, 修改其中的程式碼- import blog.views as bv
- urlpatterns = [
- url(r'^index/', bv.index),
- ]
第一行將blog.view引進來 方便引進view中的函式index
第三行正則表示式
注意:每個URL都以url的形式寫出來
url函式存放在urlpatterns列表中
url函式有3個引數:URL(正則),對應方法,名稱
在終端上執行 python manage.py runserver