Python 板


LINE

C:\Users\NOAS2K456CG05\project\project\project\urls.py from django.contrib import admin from django.urls import path , include from app1 import views urlpatterns = [ path('admin/', admin.site.urls), path('app1/' , include('app1.urls')), path('' , views.home , name = 'home'), ] _________________________我是分隔線______________________________ C:\Users\NOAS2K456CG05\project\project\app1\urls.py from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('index/' , views.index , name='index'), ] _________________________我是分隔線______________________________ C:\Users\NOAS2K456CG05\project\project\app1\views.py from django.shortcuts import render # Create your views here. from django.http import HttpResponse def index(request): s = 'This is index.' return HttpResponse(s) def home(request): s = 'This is home.' return HttpResponse(s) _________________________我是分隔線______________________________ 不知道會不會太難看 = = , Django超級新手, 想了解整個運作的流程 請教一下幾個問題 , 如果說的不對是很正常的 , 麻煩請指正我!感謝 1.path('' , views.home , name = 'home') 這個是Functiom views Browser輸入http://127.0.0.1:8000/後 , 使用app1\urls.py這個檔案內的 path('' , views.home , name = 'home') , 將app1\views.py內所定義的function 處理完後丟結果回來 , 而path內的第一個項目>>>''<<< , 如果不加路徑 , 一般來說是 不是作為首頁? 這個語法是否只適用在import app內的views.py ? 2.path('app1/' , include('app1.urls')) 這個是Including another URLconf 輸入http://127.0.0.1:8000/app1/index/後 , Browser 會詢問project內的 path('app1/' , include('app1.urls')) , 發現原來還有一層! 於是又跑去跟app1\urls.py說趕快給我資料 , 然後app1\urls.py很無奈的說出 path('index/' , views.index , name='index')去找他要 , 然後終於將views裡面的 function做完傳給Browser . 3.我看到他給的的例子裡面共有三個 : Functiom views , Including another URLconf Class-based views , 前面兩個我已經嘗試過了 , 想請問第三個是用在 import views.py 裡面的Class嗎? 4.在C:\Users\NOAS2K456CG05\project\project\app1\urls.py裡面 from . import views 之所以會打 . 是不是因為他們處在同個資料夾的原因? 5.views只能存在app裡面? 我在youtube看老外教學時 , 有些人是直接放在project 資料夾下 , 有些是放在app資料夾下 , 我覺得很混亂= = , 有什麼好處或壞處嗎? 或是有什麼用意? 還有urls也是= = , 是純粹為了方便不想隔一層import還是美觀性 ,還是有其他原因? 因為我有點強迫症 , 不喜歡東西很亂 , 希望就固定幾個pattern這樣下去做 , 以後要 修正或是Debug也方便好找 . --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.128.137.40
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1528099466.A.5C4.html
1F:→ djshen: url是用regular expression match 06/04 16:29
2F:→ uranusjr: 樓上你該升 Django 2.0 了 06/04 17:36
3F:→ djshen: 我之前是用1.x沒錯 不過我推文前特地去翻了最新的原始碼 06/04 17:48
4F:→ djshen: 內部確實是用regex沒錯 只是path有新的寫法而已 06/04 17:49
5F:→ djshen: 我講的是內部的機制 對應到他第二個問題 06/04 17:50
6F:→ tmdggyygan: 感謝回覆 , 雖然看不太懂 我會去搜尋關鍵字找資料來看 06/04 18:00
7F:→ djshen: include的url會和prefix串起來變成一個pattern 06/04 18:04
8F:→ djshen: 我重新翻了source code 不是串成一個 確實有一層層的概念 06/04 18:09
9F:→ djshen: 總之最後match的結果主要是view func和參數 06/04 18:12
10F:→ djshen: 4. https://docs.python.org/3/tutorial/modules.html 06/04 18:21
11F:→ djshen: 6.4.2 06/04 18:21
12F:→ djshen: 5. 沒有一定要放哪 初學可以照django的convention放 06/04 18:24
13F:→ tmdggyygan: 了解 , 反正最後也都是導引到views.py這樣理解對吧? 06/04 19:05
14F:→ tmdggyygan: 4.似乎真的是資料夾的關係 , 感謝! 06/04 19:12
15F:→ djshen: 通常是會對應到views.py裡面的東西 不過廣義來講只要是 06/04 20:04
16F:→ djshen: 接收HttpRequest回傳HttpResponse的東西都OK 06/04 20:05
17F:→ tmdggyygan: 感謝您! 06/04 20:28
18F:推 thethirdfoot: .視同同目錄 06/05 14:59
19F:→ g4332572: 可以參考 django 2.0 文件中的 URL dispatcher 06/06 03:42
20F:→ g4332572: 第三題,找文件 Class-based views 也有說明 06/06 03:51
21F:→ g4332572: 大意就是 06/06 04:08
22F:→ g4332572: 相比原先程序導向的函數,提供了另外物件導向的類型可用 06/06 04:09
23F:→ g4332572: 好處就是,可以透過繼承的方式來讓你的程式碼重用性變高 06/06 04:19
24F:推 tttkkk: 網站長到很大的時候 當然要將 request "分流"到 06/07 01:01
25F:→ tttkkk: app1, app2, app3, and so on. 這樣code 可以比較乾淨也 06/07 01:02
26F:→ tttkkk: 比較好管理 這正好跟你的強迫症是不違背的 06/07 01:03
27F:→ tttkkk: 還有這種方式也有利於 app 再利用。試想你若把所有 url 06/07 01:04
28F:→ tttkkk: handler 都放在 project 下 之後要把某個 app 拆給 06/07 01:04
29F:→ tttkkk: 其他 project 用時不就很麻煩? 相同的概念,你project 06/07 01:05
30F:→ tttkkk: 底下的 template 以及 static files 都最好按照 app 分 06/07 01:05
31F:推 tttkkk: 老外直接放在 project下 應該是因為第一個例子 最簡單的 06/07 01:11







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP