2019-12-21, Django 3.0 Tutorial 03

举报
Mark Chen 发表于 2019/12/21 11:44:44 2019/12/21
【摘要】 第三課相對是內容比較多的,官網入門教程有帶到的主題,要多練習才能和理論結合。 對前幾次的練習,是可以先簡易略過 HttpResponse 的部份,沒有真的懂 HttpResponse(template.render(context, request)),也沒關係。 重點在 render(request, 'polls/index.html', context) 是最典型的可以上手合乎正式環境需求。

2019-12-21, Django 3.0 Tutorial 03

參考文檔: https://docs.djangoproject.com/en/3.0/intro/tutorial03/

1. Practice views: HttpResponse

  • View 和 URL 是要成對完成的。

  • 開發的時候如果是先寫 URL,這時候 development server 會報錯,因為沒有應對的 view。        這個入門教程是精心制做的,要反覆練習多次,更能體會到好的工作習慣。

  • 在還沒引入 template 的概念之前,HttpResponse 的寫法和基本的 PHP 輸出的概念是一樣的。

  • urlpatterns 範例裡有兩個要點:

    • polls 的 index 的 URL 是 '', 沒有斜線/。

    • 其它頁面,如 '<int:question_id/>',都是有帶斜線/。尤其要注意這點,                雖然不帶斜線/的網址也可以用,根據實做經驗,所有頁面都統一都有帶斜線/,可以避開不必要的困擾。

1576900381486626.png

2. Practice views: HttpResponse(template.render(context, request))

  • 這是由 HttpResponse 要過渡到 render

3. Practice views: render

  • 'polls/index.html'

  • 個人已習慣用 getHtml(index) 取代。好處就是不重覆 'polls/' 和 '.html'

4. Raise a 404 error

  • 雖然 Django 提供了 get(),可以搭配 404,實做上,        有些情境使用  filter() , 沒有資料走特定頁面或顯示,感覺比較 programmer-friendly and user-friendly. 。

5. Use the template system

  • 官網入門教程在這輕輕提一下,真正的重頭戲在 https://docs.djangoproject.com/en/3.0/topics/templates/

  • 另外自行加 template filter, https://docs.djangoproject.com/en/3.0/howto/custom-template-tags/,            可以有效處理輸出的格式,例如真假值,有時候我們希望在不同頁面情境會顯示像是"對錯"或是"OX"等。

5. Remove hardcoded URLs in templates

  • 截圖這部分想要直接用HTML寫成文檔是有點挑戰的

  • 實做上的經驗,儘量使用相對路徑更好。

1576900408373449.png

6. Namespace on urls.py

  • 直接了當,在urls.py 一定要使用像, app_name = 'polls'。

  • 注意 polls:detail 的冒號:,{%  url 'polls:detail' question.id  %}

1576900459951739.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200