日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django的APP,视图,url和模板

發布時間:2024/10/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django的APP,视图,url和模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建app

在項目的根目錄執行python manage.py startapp app名字

URL概念:

URL(Uniform Resoure Locator)統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它

urls.py的作用:

http://127.0.0.1:8000/hello/

URL解釋:

schema://host[:port#]/path/…/[?query-string][#anchor]
schema:指定使用的協議(例如:http, https, ftp)
host:Http服務器的IP地址或者域名
port:端口號,http默認是80端口
path:訪問資源的路徑
query-string:發送給http服務器的數據
anchor:錨點

原理

當一個請求來到的時候

  • 首先到項目目錄下的urls.py (根URLconf模塊)中,查找路由規則
  • 根URLconf模塊,里面定義了 urlpatterns 變量
  • urlpatterns 是一個(django.urls.path,django.urls.re_path 對象)列表
  • 按順序運行每個url模式,在第一個匹配的模式停止
  • 一旦匹配,django導入并調用給定的視圖
  • 如果中間出錯,或者沒有匹配到,返回404
  • path的參數

    path(route, view, kwargs=None, name=None)
    route 是一個字符串的url規則
    view 是個視圖
    kwargs 額外參數,傳遞給view,必須是一個字典
    name url的命名

    轉換器的使用:

    re_path正則匹配

    re_path('^hello/$',views.test5), re_path('^hello/(?P<yy>[0-9]+)/',views.test6), def test5(request):return HttpResponse('這是用的re_path設置的')def test6(request,yy):print(yy,type(yy))return HttpResponse('hello %s'%yy)

    代碼 演練:

    在student的app下的urls.py


    student.view.py

    ip+端口+app+url匹配模式


    一個url對應一個視圖函數,但我們的視圖越來越多時,url也就越來越多

    一個project有一個總的urls.py
    各個app也可以自己建立自己的urls.py
    用include()函數在project的urls.py文件進行注冊

    url命名

    name參數可以給這個url取一個合適的名字。通過給url取名字,以后在view或者模板中使用這個URL,就只需要通過這個名字就可以了。這樣做的原因是防止url的規則更改,會導致其他地方用了這個url的地方都需要更改,但是如果取名字了,就不要做任何改動了。

    模板系統

    模板放在哪???

    在主目錄下創建一個templates目錄用來存放所有的html的模板文件.templates目錄里面在新建各個以app名字命名的目錄來存放各個app中模板文件.




    render方法是django封裝好用來渲染模板的方法
    很方便,很好用!!!

    總結

    在url中捕獲參數

    在url規則中使用<變量名>可以捕獲url中的值
    傳遞給視圖捕獲的值是 字符串

    路徑轉換器,上面案例:int:pk

    常用的轉換器:

    str 匹配除了‘/'路徑分隔符之外的所有字符串

    int 匹配任意整數

    slug 匹配任意ascii字符 加上連字符和下劃線

    uuid 格式化id

    path 匹配任意非空字符

    使用正則表達式 re_path(route, view, kwargs=None, name=None)

    django 搜索 url 搜索的是什么?

    只搜索路徑部分,跟參數,以及請求方法(get,post)無關

    同一個url 可以匹配 get, post

    包含其他URLconfs,include

    傳遞額外參數,path,re_path 方法中,傳遞一個kwargs 的字典參數

    當kwargs 中的key 與 url捕獲中的key 一致的時候,以kwargs為準

    url 命名,頁面重定向 ,跳轉頁面 登錄之后, 某個操作之后

    app_name:定義在 app文件夾下的urlconf模塊中app_name = app名稱

    模板系統

    html 源碼寫到模板文件中

    return render(request, 'teacher/index.html')

    總結

    以上是生活随笔為你收集整理的Django的APP,视图,url和模板的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。