寫在前面
昨晚應該是睡的最好一天吧,最近一個月睡眠好差,睡不著不說,而且半夜總醒,搞的我第二天就會超沒精神。
昨天下午去姐姐家,我剛進屋,小外甥直接就問我說:
老舅,你都很長時間沒來啦,**(前女友)哪去了, 我們都好久沒出溜溜了!
我頓了下說,她不喜歡我們了,等以後天暖和,我們再去溜溜。
才發現,忘掉一個人真的很難,明知道沒結果,還是沒法輕易做到波瀾不驚,不去想念。
模板的使用
1、檢視與html頁面
檢視: 瀏覽器視窗展示出來的頁面內容,就是檢視。
html頁面: 在頁面上展示出的純文字內容,開啟的瀏覽器頁面,就是html頁面
2、建立應用
python manage.py startapp mycontent
3、配置setting
在setting.py
檔案中,找到INSTALLED_APPS
,並在最後一行新增如下內容:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mycontent',
]
4、新增模板templates
在新建的應用下建立templates
模板資料夾,在模板下建立content.html
,程式碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>content demo</title>
</head>
<body>
<h3>this is a content</h3>
</body>
</html>
5、url與檢視繫結
接下來,需要將html
與url
繫結,啥意思,就是你訪問url
連線可以看到你剛才的html
檔案內容。
我們需要在mycontent/views.py
裡寫檢視函式新增如下程式碼:
from django.shortcuts import render
# Create your views here.
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello world ! django ~~")
def my_content(request):
return render(request, 'content.html')
在django_project/urls.py
裡新增url
訪問路徑,示例程式碼如下:
from django.conf.urls import url
from mycontent import views
urlpatterns = [
url('^$', views.index),
url('^my_content', views.my_content())
]
訪問http://127.0.0.1:8000/my_content
可以看到效果如下:
6、urls.py配置規則
主要有三個:path、re_path、url
:
path
只能絕對匹配路徑地址,不支援正則匹配re_path
支援正則匹配,django 1.x
版本常用url
支援正則匹配,實際上就是return re_path, django2.x
版本推薦
從path()
和re_path()
原始碼看,path()
的匹配規則是RoutePattern
, re_path()
匹配規則是RegexPattern
path = partial(_path, Pattern=RoutePattern)
re_path = partial(_path, Pattern=RegexPattern)
url()
原始碼,也是使用的re_path()
def url(regex, view, kwargs=None, name=None):
return re_path(regex, view, kwargs, name)
7、動態url的處理
沿用博主的案例吧,就是分頁跳轉的例子,不能動態寫死,只需要用正規表示式匹配數字即可,匹配任意數字,可以用正則\d+
匹配,如下所示:
url('^pagehelper=\d+$', views.pagehelper)
模擬場景就是,傳入非數字型別引數返回404 Not Found
,在mycontent/views.py
修改程式碼如下:
# Create your views here.
from django.http import HttpResponse, Http404
from django.shortcuts import render
# Create your views here.
def index(request):
return HttpResponse("Hello world ! django ~~")
def my_content(request):
return render(request, 'content.html')
def pagehelper(request,num):
try:
num=int(num)
return render(request, 'content.html')
except:
raise Http404
在django_project/urls.py
裡新增url
訪問路徑,示例程式碼如下:
from django.conf.urls import url
from django.urls import re_path, path
from mycontent import views
urlpatterns = [
path("index/", views.index),
re_path('^$', views.index),
url('^$', views.index),
url('^my_content/$', views.my_content),
url('^my_content/page=(\d+)$', views.pagehelper),
]
效果:
這個報錯,主要是因為Django
設定檔案setting.py
裡面有個引數 DEBUG = True
,將其更改為False
,Django
將顯示標準的404
頁面。
預設顯示如下:
知識點:
DEBUG=True:
表示處於開發階段,預設為True
DEBUG = False:
表示開發完成正式釋出產品上線ALLOWED_HOSTS:
域名訪問許可權,設定可以訪問的域名,預設值為空\[]
, 只允許localhost
或127.0.0.1
在瀏覽器上訪問。- 修改
DEBUG = False
後,,必須重新啟動服務,同時需要加個ALLOWED_HOSTS
地址,如果想讓所以的域名都能訪問,可以設定為:ALLOWED_HOSTS = ["*"]
- 修改後使用如下命令重啟:
python manage.py runserver
效果如下:
寫在最後
一段感情開始容易,結束卻很難,它不是今天和明天的一刀切,分開了就是兩條路,它是過往習慣的終結,是愛過但也不再愛的承認,是一個人面對未知的勇氣,是從此一別兩寬、各生歡喜。
如果可以,我也想這麼釋然,放過自己,不再這麼內耗自己了。