項目及應用如下:
創建簡單應用流程:
- 第一步:編輯myblog.vidws.py
每個響應對應一個函數,函數必須返回一個響應;
函數必須存在一個參數,一般約定爲request;
每一個響應(函數)對應一個URL。
- 第二步:編輯mysite.urls.py
每個URL都以url的形式寫出來;
url函數存放在urlpatterns列表中;
url函數三個參數:URL(正則),對應方法,名稱。
- 第三步:啓動服務器 >python manage.py runserver 9999
- 第四步:瀏覽器查看 http://localhost:9999/index/
代碼:
myblog.vidws.py
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the myblog index.")
mysite.urls.py
from django.contrib import admin
from django.conf.urls import url
import myblog.views as mv
urlpatterns = [
url('^admin/', admin.site.urls),
url('^index/', mv.index),
]
瀏覽器響應:
優化以上的URL配置:
對於多個應用時,根目錄下的mysite/urls.py文件過於龐大,不好維護。
解決方法:
第一步:創建應用目錄下myblog/urls.py文件
第二步:修改根目錄下mysite/urls.py文件【引入include】
第三步:瀏覽器訪問
注意事項:
根目錄mysite/urls.py針對APP配置的URL名稱,是該APP所有URL的總路徑
配置URL時注意正則表達式結尾符號$和/
代碼:
myblog/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url('index', views.index), #url('^index/$', views.index),#/不能丟
]
mysite/urls.py
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf.urls import url,include
urlpatterns = [
url('^admin/', admin.site.urls),
url('^myblog/', include('myblog.urls')),
]
瀏覽器訪問: http://localhost:9999/myblog/index/
修改訪問路徑,不需要太長的,可以修改根目錄的,也可以修改應用目錄下的,此處修改應用目錄下的myblog/urls.py中的路徑,設置爲空
from django.conf.urls import url
from . import views
urlpatterns = [
url('', views.index),
]
訪問路徑:http://localhost:9999/myblog/
發現 http://localhost:9999/myblog/ 這個路徑後面加任意字符串都可以訪問成功
使用正則表達式約束空字符串,如下
from django.conf.urls import url
from . import views
urlpatterns = [
url('^$', views.index),
]
這樣就不會出現訪問任意路徑都可以顯示成功了。