寫在前面 昨晚應該是睡的最好一天吧,最近一個月睡眠好差,睡不著不說,而且半夜總醒,搞的我第二天就會超沒精神。 昨天下午去姐姐家,我剛進屋,小外甥直接就問我說: 老舅,你都很長時間沒來啦,**(前女友)哪去了, 我們都好久沒出溜溜了! 我頓了下說,她不喜歡我們了,等以後天暖和,我們再去溜溜。 才發現, ...
寫在前面
昨晚應該是睡的最好一天吧,最近一個月睡眠好差,睡不著不說,而且半夜總醒,搞的我第二天就會超沒精神。
昨天下午去姐姐家,我剛進屋,小外甥直接就問我說:
老舅,你都很長時間沒來啦,**(前女友)哪去了, 我們都好久沒出溜溜了!
我頓了下說,她不喜歡我們了,等以後天暖和,我們再去溜溜。
才發現,忘掉一個人真的很難,明知道沒結果,還是沒法輕易做到波瀾不驚,不去想念。
模板的使用
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
效果如下:
寫在最後
一段感情開始容易,結束卻很難,它不是今天和明天的一刀切,分開了就是兩條路,它是過往習慣的終結,是愛過但也不再愛的承認,是一個人面對未知的勇氣,是從此一別兩寬、各生歡喜。
如果可以,我也想這麼釋然,放過自己,不再這麼內耗自己了。
優秀不夠,你是否無可替代
軟體測試交流QQ群:721256703,期待你的加入!!
歡迎關註我的微信公眾號:軟體測試君