[TOC=1,5]
>[success] # Django-url 請求映射
~~~
1.在settings.py目錄下配置好ROOT_URLCONF = '根目錄名.urls'
2.通過根目錄下from django.conf.urls import url,創建urlpatterns列表
3.通過用戶輸入的url和urlpatterns中的url進行匹配
4.匹配成功后,導入并調用給定的視圖python函數
5.如果匹配失敗返回報錯信息
~~~
* **注意:**
* url 一定要用$ 結尾
* 不需要在每個url前加反斜杠,因為每個url都有
* 每個正則表達式前面的'r' 是可選的但是建議加上。 它告訴Python 這個字符串是“原始的” —— 字符串中任何字符都不應該轉義。
* * * * *

>[danger] ##### FBV - 請求映射寫法
~~~
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'login',views.login),
]
~~~
>[danger] ##### CBV - 請求映射寫法
* **注意點:**
* `一定在view層用的是 class 定義函數才可以使用`
~~~
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'index',views.index.as_view())
]
~~~
</br>
* * * * *
>[success] # 獲取一組url
>[info] ### 方法一、Get
>[danger] ##### 使用場景
~~~
1.通過url 傳遞參數的時候使用
2.url 樣式 http://127.0.0.1:8000/login?num=3
~~~
>[danger] ##### views 層編寫
~~~
# 設置一個字典
USER_DICT = {
"1":{'name':"w"},
"2":{'name':"c"},
"3":{'name':"y"},
}
def login(request):
if request.method == "GET":
# 獲取當前url傳遞的參數
num = request.GET.get('num',None)
if num:
USER_DIC=USER_DICT.get(num,None)
if USER_DICT:
# 獲取成功后跳轉的詳情頁面
return render(request,'person.html',{'USER_DIC':USER_DIC})
# 初始頁面,當獲取失敗和第一次時候 跳到初始頁面
return render(request,"index.html",{'USER_DICT':USER_DICT})
~~~
>[danger] ##### templates 編寫
參數動態生成
~~~
{% for k,v in USER_DICT.items %}
<a href="/login?num={{ k }}">{{ v.name }}</a>
{% endfor %}
~~~
* * * * *
</br>
>[info] ### url設置正則方法一
>[danger] ##### 使用場景
~~~
1.所有url都是str類型,例如/test/1,中的1也是str類型
2.獲取一組url,獲取/test/2017、/test/2018這種變化的url
3.例如:http://127.0.0.1:8000/personinfo/1 后面的數字是動態的
~~~
**快速知識點:**
~~~
urlpatterns = [
url(r'^test/([0-9]{4})/$',views.index),
url(r'^test/([0-9]{4})/([0-9]{2})/$',views.index1),
url(r'^test/([0-9]{4})/([0-9]{2})/([0-9]+)/$',views.index2),
]
~~~
~~~
def index(request,yid)
def index1(request,yid,mid)
def index2(request,yid,mid,did)
~~~
* * * * *
>[danger] ##### url.py 配置
**注意:**
這里做了兩個url,一個用來接受所有數據,一個用來正則匹配

~~~
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'person/$', views.person),
url(r'personinfo/(\d+)',views.personinfo),
]
~~~
>[danger] ##### views.py 配置
~~~
# 設置一個字典
USER_DICT = {
"1":{'name':"w"},
"2":{'name':"c"},
"3":{'name':"y"},
}
# 獲取所有數據
def person(request):
return render(request,'index.html',{'USER_DICT':USER_DICT})
# 用來接收url的匹配參數,跳轉匹配的網址
def personinfo(request,nid):
if nid:
USER_DIC = USER_DICT[nid]
return render(request,"person.html",{'USER_DIC':USER_DIC})
~~~
>[danger] ##### 多個參數寫法
**url:寫法**
~~~
url(r'^nid-(\d+)-(\d+)', views.nid),
~~~
**views 寫法:**
~~~
#uid,nid 分別是和正則對應url是一一對應
def test(request,uid,nid):
#第二種可以利用*arg
def test(request,*arg):
~~~
* * * * *
>[info] ### url設置正則方法二
>[danger] ##### 命名組通過屬性名對應-(?P<屬性名>)
~~~
對應函數為屬性名依次對應,函數中的屬性名位置可以不用順序排列
~~~
**快速知識點:**
~~~
urlpatterns = [
url(r'^test/(?P<year>[0-9]{4})/$',views.index),
url(r'^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.index1),
url(r'^test/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]+)/$',views.index2),
]
~~~
* * * * *
**第一種**
~~~
def index(request,year):
def index1(request,month,year):
def index2(request,year,month,day):
~~~
**第二種**
~~~
def test(request,**kwargs)
~~~
>[danger] ##### 小技巧-兩個url指向同一函數
~~~
urlpatterns = [
url(r'^test/page/$',views.index),
url(r'^test/page(?P<page>(\d+))/$',views.index),
]
~~~
**views**
設置默認頁
~~~
def index(request,page=1):
return HttpResponse(page)
~~~
- 網絡原理
- 為搭建框架做準備
- 簡單認識網路
- 自定義模擬網站案例
- 優化最終框架
- 數據存儲 -- data
- 用戶個人信息存儲 -- User.txt
- 路由映射 -- routes
- 處理用戶信息 -- routes_static.py
- 保存靜態文件 -- static
- templates -- html 集中處理模塊
- 首頁 -- index.html
- 登陸 -- login.html
- 用戶注冊頁面 -- register
- 日志模塊 -- log.gua.txt
- 啟動文件--server.py
- orm處理 -- model.py
- 日志模塊 -- utils.py
- 兩種數據庫類型
- 傳統數據庫了解篇
- 前端快速入門
- JS簡單使用入門
- css簡單快速入門
- DJANGO
- virtualenv-創建虛擬環境
- 項目結構
- django-admin中文配置
- django-打印sql語句
- django-基礎
- 認識MVC和MTV
- Django--初識
- Django--初識案例
- Django-FBV/CBV
- Django--常用input 交互
- Django-url
- Django-url.py 配置
- Django-include 使用
- Django-url name
- Django-ORM
- ORM-數據庫配置
- ORM-model字段
- ORM-model字段解釋
- ORM-字段選項
- ORM-查詢
- ORM-四種常用查詢方法
- ORM-三種獲取數據
- ORM-其他查詢方式
- ORM-條件查詢雙線
- ORM-Q和F條件使用
- ORM-三種數據庫交互
- 案例 -- 一對多
- ORM-技巧/常見問題
- ORM-N+1 問題
- ORM-并發的處理
- ORM-數量查詢、
- ORM-正向反向查詢
- ORM-基礎案例一
- ORM-基礎一對多案例
- Django-templates
- Django-模板的繼承
- Django-模板的過濾
- Django-自定義模板的過濾
- Django-cookie
- Django-cookies 裝飾器
- Djang-session
- Django-CSRF
- Django-中間件 -- 后續了解
- Django- 緩存 -- 沒有深入了解
- Django-form
- From-ajax
- form-內部驗證處理
- form-屬性
- form-常用的標簽字段
- form-常用的下拉和選擇
- form-widget速查
- Django-ajax序列化
- Django-多種ajax寫法
- ajax-原生寫法
- ajax-$寫法
- ajax-ifram
- Django-ajax圖片上傳
- ajax-原始寫法
- ajax-正常寫法
- iframe+form
- 實戰寫法
- Django-常用自編寫組件
- Django-雙菜單組合搜索
- Django - 多菜單組合搜索
- Django-分頁
- django-綜合基礎
- 綜合基礎-render
- django-admin
- admin-頁面配置
- admin-字段配置
- admin-編輯頁面
- admin-forms驗證
- admin-創建抽象類
- django-驗證碼
- 驗證碼-第三方生成庫
- 驗證碼-view.py使用
- 驗證碼-注意引入Monaco.ttf
- django-用戶注冊
- 注冊-form 模塊
- 注冊-views 模塊
- 注冊-html模塊
- 注冊-model模塊
- django-用戶登錄三種
- session登錄
- form-session 寫法
- view-寫法
- Html-寫法
- model-寫法
- 繼承類登錄
- 外鍵關聯登錄
- django-簡單的student 管理案例
- app-urls.py
- app-models.py配置
- admin-admin.py配置
- app-form.py 和數據庫關聯的寫法
- app-FBV_views.py
- app-CBV_views.py
- templates-index.html
- django-博客系統
- APP目錄-models.py 創建
- APP目錄-基礎展示數據分析
- APP目錄-基礎數據展示cls
- ListView
- DetailView
- FormView
- 額外功能拓建
- 添加文章搜索/用戶文章查詢功能
- 增加一個友情鏈接
- 增加一個評論模塊
- App-利用Bootstrap4 搭建樣式
- 項目crm
- 思維導圖
- perfectCRM-項目名字
- settings.py-配置
- view.py-登陸/登出函數
- crm-app文件
- model.py-表的創建
- admin.py-注冊后臺
- view.py-視圖層
- static-靜態文件
- css
- bootstrap.min.css
- dashboard.css
- ie10-viewport-bug-workaround.css
- signin.css
- fonts
- imgs
- js
- jquery.js
- bootstrap.min.js
- holeder.js
- ie10-viewport-bug-workaround.js
- ie-emulation-modes-warning.js
- plugins
- html模板文件-templates
- crm
- index.html-首頁模板