Django web框架(學習筆記)
建立項目
在cd到代碼目錄運行命令:python
django-admin startproject testapp
web
建立testapp目錄 同時會建立出如下文件:正則表達式
testapp/ manage.py testapp/ __init__.py settings.py urls.py wsgi.py
- manage.py:用各類方式管理Django 項目的命令行工具。
- **tesyapp/**目錄包含該項目,一個純 Python 包。
- tesyapp/init.py:一個空文件,告訴 Python 這個目錄應該被認爲是一個 Python 包。
- tesyapp/settings.py:Django 項目的配置文件。
- tesyapp/urls.py:Django 項目的 URL 聲明,就像你網站的「目錄」.
- tesyapp/wsgi.py:做爲你的項目的運行在 WSGI 兼容的Web服務器上的入口.
用於開發的簡易服務器
啓動了Django自帶的用於開發的簡易服務器,一個純Python寫的輕量級的web服務器。內置在Django中,爲了能快速的開發想要的東西,無需配置生成級別的服務器。可是也只用於開發設計而非web服務器。django
更換端口、IP瀏覽器
默認狀況下,runserver 命令會將服務器設置爲監聽本機內部 IP 的 8000 端口,服務器
python manage.py runserver 8080
app
能夠用於更改監聽端口到8080。 若是修改監聽IP,在端口前添加IP,框架
python manage.py runserver 0:8000
函數
0是0.0.0.0簡寫。工具
建立投票應用
每個應用都是一個python包。Django自帶一個工具,能夠生成應用的基礎目錄結構。 處於manage.py所在的目錄下,而後運行這行命令來建立一個應用:
python manage.py startapp polls
這將會建立一個 polls 目錄,它的目錄結構大體以下:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
這個目錄包括了投票應用的所有內容
編寫第一個視圖
打開polls/views.py,輸入:
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
若是須要看見效果,須要url映射,建立URLconf,在polls目錄中新建一個urls.py。 在urls.py輸入:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
在根URLconf文件中指定建立的polls.urls模塊。在testapp/urls.py文件的urlpatterns列表裏插入一個include(),以下:
from django.contrib import admin from django.urls import include,path urlpatterns = [ path('polls/',include('polls.urls')), path('admin/',admin.site.urls), ]
驗證是否正常,運行:
python mange.py runserver
瀏覽器訪問http://127.0.0.1:8000/polls/ ,就能看見 "Hello, world. You're at the polls index."
path()參數:route
route 匹配URL準則,相似正則表達式。當Django響應一個請求時,會從urlpatterns第一項開始,按順序依次匹配列表中的項,直到找到匹配項。 這些準則不會匹配 GET 和 POST 參數或域名。例如,URLconf在處理請求 https://www.example.com/myapp/ 時,它會嘗試匹配myapp/。處理請求 https://www.example.com/myapp/?page=3 時,也只會嘗試匹配 myapp/
path()參數:view
當 Django 找到了一個匹配的準則,就會調用這個特定的視圖函數,並傳入一個HttpRequest對象做爲第一個參數,被「捕獲」的參數以關鍵字參數的形式傳入。
path()參數:kwargs
任意個關鍵字參數能夠做爲一個字典傳遞給目標視圖函數。本教程中不會使用這一特性。
path()參數:name
爲你的 URL 取名能使你在 Django 的任意地方惟一地引用它,尤爲是在模板中。這個有用的特性容許你只改一個文件就能全局地修改某個URL模式。