欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Django基礎概念-創(chuàng)新互聯(lián)

Django

遵循MVC設計模式的框架,MVC是Model、View、Controller的三個單詞的簡寫。分別代表模型、視圖、控制器。
Django基礎概念

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務土默特左旗,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
創(chuàng)建項目
  • 通過命令行方式,首先進入到安裝了Django的虛擬環(huán)境中
  • 通過pycharm方式
    # 創(chuàng)建項目
    1、命令行:django-admin startproject [項目名稱]
    2、pycharm方式:文件->創(chuàng)建項目->選擇django。然后指定項目所在的路徑,以及python解釋器。
    #運行項目
    python manage.py runserver
    可添加端口 python manage.py runserver 8088
    對公訪問  python manage.py runserver 0.0.0.0 8088
項目結構介紹
  • manage.py:和項目交互都基于這個文件,python manage.py [子命令]
  • settings.py:本項目的設置項,所有和項目相關的配置都是放在這個里面
  • urls.py:用來配置URL路由的,比如訪問http://127.0.0.1/news/ 是訪問新聞列表頁,這些東西就需要在這個文件中完成。
  • wsgi.py:項目與WSGI協(xié)議兼容的web服務器入口,部署的時候需要用到的,一般情況下也是不需要修改的。
創(chuàng)建app
python manage.py startapp django_1
視圖函數(shù)
  • 視圖函數(shù)的第一個參數(shù)必須是request,這個參數(shù)不能少
  • 視圖函數(shù)的返回值必須是django.http.response.HttpResponseBase的子類的對象。
URL傳遞參數(shù)
  • url映射
    • 要去urls.py文件中尋找映射是因為在settings.py文件中配置了ROOT_URLCONFurls.py。所有的django會去urls.py中尋找。
    • urls.py中我們所有的映射都應該放在urlpatterns這個變量中。
    • 所有的映射不是隨便寫的,而是使用path函數(shù)或者是re_path函數(shù)進行包裝的。
  • url傳參數(shù)
    • 采用在url中使用變量的方式:在path的第一個參數(shù)中,使用<參數(shù)名>的方式傳遞參數(shù),然后在視圖函數(shù)中也要寫一個參數(shù)。視圖函數(shù)中的參數(shù)必須和url中的參數(shù)名稱保持一致,不然找不到這個參數(shù)。
    • 采用查詢字符串的方式:在url中不需要單獨的匹配查詢字符串的部分,只需要在視圖函數(shù)中使用request.GET.get('參數(shù)名稱')的方式來獲取。代碼如下:
      def author_detail(request):
      author_id = request.GET['id']
      text = '作者的id是:%s' % author_id
      return HttpResponse(text)

      因為查詢字符串使用的是GET請求,所以我們通過request.GET來獲取參數(shù),并且因為GET是一個類似于字典的數(shù)據(jù)類型,所有獲取值跟字典的方式都是一樣的。

url命名
  • 需要url命名的原因
    因為url是經(jīng)常變化的,寫死可能會經(jīng)常修改代碼。給url取個名字以后使用url的時候就使用它的名字進行反轉就可以了。
  • 如何給一個url指定名稱
    在path函數(shù)中,傳遞一個name參數(shù)就可以指定。

    # urls.py
    from django.urls import path
    from . import views
    urlpatterns = [
        path('',views.index,name='index'),
        path('signin/',views.login,name='login')
    ]
    
    # views.py
    from django.http import HttpResponse
    from django.shortcuts import redirect,reverse
    
    def index(request):
        username = request.GET.get('username')
        if username:
            return HttpResponse('首頁')
        else:
            return redirect(reverse('login'))
  • 應用命名空間
    在多個app之間,有可能產(chǎn)生同名的url。這時為了避免反轉url的時候產(chǎn)生混淆,可以使用應用命名空間來做區(qū)分。定義應用命名空間非常簡單,只要在app的urls.py中定義一個叫做app_name的變量來指定這個應用的命名空間即可。

    # urls.py
    from django.urls import path
    from . import views
    app_name = 'front'
    
    urlpatterns = [
        path('',views.index,name='index'),
        path('signin/',views.login,name='login')
    ]
    
    # views.py
    from django.http import HttpResponse
    from django.shortcuts import redirect,reverse
    
    def index(request):
        username = request.GET.get('username')
        if username:
            return HttpResponse('首頁')
        else:
            return redirect(reverse('front:login'))
  • 應用命名空間和實例名空間
    # 一個app可以創(chuàng)建多個實例,可以使用多個url映射同一個app。在做反轉的時候使用應用命名空間,那么就會發(fā)生混淆,為了避免這個問題就可以使用實例命名空間。在include函數(shù)中傳遞一個namespace變量即可。
    # urls.py 
    from django.urls import path,include
    urlpattterns = [
    path('',include('front.urls')),
    path('cms1/',include('cms.urls',namespace='cms1')),
    path('cms2/',include('cms.urls',namespace='cms2'))
    ]
url分層模塊化

多個app后主app的urls.py里的urlpatterns會寫入過多路徑,可通過在app里創(chuàng)建自身app對應的urls.py來方便路徑轉發(fā)。

# 主urls.py,使用include函數(shù)包含子urls.py
from django.urls import path,include

urlpattterns = [
    path('book/',include('book.urls'))
    # 以book開頭的url都會轉到book app下的urls.py
]

# book app的 urls.py
from django.urls import path
from . import views

urlpattterns = [
    path('',views.book),
    path('detail/<book_id>',views.book_detail),
    path('list/',views.book_list),
]
reverse函數(shù)補充

1、如果反轉url的時候,需要添加參數(shù),那么可以傳遞kwargs參數(shù)到reverse函數(shù)中。
2、如果想要添加查詢字符串的參數(shù),則必須手動的
進行拼接。

# views.py
from django.http import HttpResponse
from django.shortcuts import reverse,redirect

def index(request):
    username = request.GET.get('username')
    if username:
        return HttpResponse("首頁")
    else:
        # login_url = reverse('login') + "?next=/"
        # return redirect(login_url)
        detail_url = reverse('detail',kwargs={'article_id':1,'page':2})
        return redirect(detail_url)

def login(request):
    return HttpResponse("登錄頁面")

def article_detail(request,article_id):
    text = '您的文章id是:%s' % article_id
    return HttpResponse(text)

# urls.py
from django.urls import path
from front import views

urlpatterns = [
    path('',views.index,name='index'),
    path('login/',views.login,name='login'),
    path('detail/<article_id>/<page>/',views.article_detail,name='detail')
]

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:Django基礎概念-創(chuàng)新互聯(lián)
分享URL:http://aaarwkj.com/article16/codidg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣軟件開發(fā)、域名注冊微信公眾號、關鍵詞優(yōu)化、網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設
国产亚洲欧美成人精品久久| 好吊妞视频这里只有精| 国产精品日本一区二区三区在线 | 国产精品日本欧美一区二区| 色婷婷丝袜一区网站| 关于男女性生活的视频| 日本一本高清免费不卡| 邻居少妇扒开腿让我爽了一夜| 欧美日韩精品偷拍一区二区| 免费毛片一区二区三区四区| 日本午夜视频一区二区| 乱码人妻精品一区二区三区| 亚洲国产精品成人女人| 国产精品一区二区麻豆本子| 亚洲一级香蕉视频东京热| 久久婷婷国产综合精品青草| 日本老太老熟妇一级特黄| 亚欧乱色熟女一区二区三区| 免费观看国产性生活片| 日本少妇人妻中文字幕| 日韩欧美二区三区精品在线| 婷婷五激情五月激情片| 性激烈的欧美三级男同| 久久久久久成人综合色| 熟女熟妇乱女乱妇综合网| 黑人巨大亚洲一区二区久| 丰满人妻的诱惑中文字幕| 色婷婷亚洲婷婷亚洲最大| 丰满人妻大屁一区二区| 国产一区二区三区婷婷| 麻豆映画传媒在线播放| 国产一区日本二区欧美三区| av中文字幕一二三区| 日韩成人在线视频观看| 午夜亚洲欧美日韩在线| 避暑地堕落人妻中文字幕| 天天天干夜夜添狠操美女| 亚洲成av人片一区二久久精品 | 日韩在线观看视频有码| 97视频在线观看免费| 国产女人高潮流白丝视频|