Django学習の2日目

1.ルーティングシステム:
最初のシステム:url(r '^ index /'、views.index)関数メソッド、URLを開始する要求、およびビューのインデックス関数が
2番目の要求を処理:url(r '^ index /' 、views.index.as_view())、クラスメソッド、URLを開始する要求、ビューのindexlクラスはdjango.views
からの要求処理します。インポートビュー
クラスインデックス(ビュー):

def dispatch(self、request、* args、* * kwargs):
#親クラスでディスパッチを呼び出し、リフレクション関係を処理します。親クラスを継承し、独自の関数を記述できます。これは、デコレータの
print( 'before')と同等
です。result = super(Home、self).dispatch(request 、* args、** kwargs)
print( 'after')
return result

def get(self、request):
"" "handle get request" ""

def post(self、request):
"" "handle post request" ""
3番目の種類は正規表現を使用します。
1.
処理関数のurl(r '^ detail-(\ d +)。Html'、views.detail)、
def detail(request、nid):
"" "いくつかの値を書き込み、受信するいくつかのパラメーターを書き込む" ""
nidは、渡すことができる一致した値です
。defdetail(request、* args、** kwargs):
"" * args "" "Receive the
pass value 2、url(r '^ detail-(?P <nid> \ d +)-(?P <uid> \ d +)。html '、views.detail)
キーと値のペアの形式で渡すので、渡す順序を気にする必要はありません。上記の方法を使用することもできますkwargsの受信は、受信したディクショナリ

2つのビューのメソッドです。request.path_info
文字列、特定のWebサーバー構成では、ホスト名の後のURL部分がスクリプトプレフィックス部分とパス情報部分に分割されます。path_info属性には常にパスが含まれます使用するWebサーバーに関係なく、情報部分
。Request.GET.get( "")は、getリクエストによって送信されたデータを取得するために使用されます。Request.POSTは、
postリクエストによって送信されたデータを取得するために使用されます
。Request.methodは、送信方法を決定するために使用されます。 、
request.POST.getlist()チェックボックスと他の複数選択されたコンテンツ
obj = request.FILES.get( 'fafafa')は、オブジェクトのチャンク()を使用してアップロードされたファイルを取得し、ビット ごとにアップロードするために使用されます。
例:
import os
file_path = os.path.join( 'upload'、obj.name )
f = open(file_path、mode = "wb")
for i in obj.chunks():
f.write(i)
f.close()
  FILESは、要求されたメソッドがPOSTおよび送信された<form>の場合にのみ機能することに注意してください。 enctype = "multipart / form-data"のみがデータを含みます。
   それ以外の場合、FILESは空の辞書のようなオブジェクトになります。
名前の使用例
URLルーティング関係に名前を付ける*****将来、この名前に基づいて必要なURLを生成できます*****
url(r '^ asdfasdfasdf /'、views.index、name = 'i1' )、
url(r '^ yug /(\ d +)/(\ d +)/'、views.index、name =' i2 ')、
url(r '^ buy /(?P <pid> \ d +)/(?P <nid> \ d +)/'、views.index、name = 'i3')、



def index(request、* args、** kwargs):
from django.urls import reverse

url1 = reverse( 'i1')#asdfasdfasdf /
url2 = reverse( 'i2'、args =(1,2、))#yug /
1/2 / url3 = reverse( 'i3 '、kwargs = {' pid ':1、 "nid":9})#buy /


1/9 / xxx.html

{%url "i1"%}#asdfasdfasdf /
{%url "i2" 1 2%}# yug / 1/2 /
{%url "i3" pid = 1 nid = 9%}#購入/

1/9 / 三、多级路由
プロジェクト/ urls。django.conf.urls
からの py インポートURL、インクルード
from

django.contrib import admin urlpatterns = [
url(r '^ cmdb /'、include( "app01.urls"))、
url(r '^ monitor /'、include( "app02.urls"))、
]

app01 / urls.py
from django.conf.urls import url、include
from
django.contrib import admin from app01 import views

urlpatterns = [
url(r '^ login /'、views.login)、
]

app02 / urls.py
from django.conf .urls import url、django.contrib からのインクルード
import admin
からのapp02インポートビュー

urlpatterns = [
url(r '^ login /'、views.login)、
]

おすすめ

転載: www.cnblogs.com/KingOfCattle/p/12731931.html