pythonのWebフレームワーク:Djangoルーティングシステムおよびテンプレートインポート

12322 ワード

Djangoのルーティングシステム
一つのリクエストが来たとき
            
    1、         urls.py( URLconf  ) ,      ;
    2、 URELcof  ,      urlpatterns   ;
    3、urlpatterns   (django.urls.path, dango.urls.re_path   )  ;
    4、       url  ,           ;
    5、    ,django          ;
    6、      ,       ,  404

 
pathメソッド、およびデフォルトパラメータ
デフォルトのパラメータはルーティング、ビュー、kwargs、nameのオプションパラメータを構成する必要があります.
1     - path(route, view, kwargs=None, name=None)
2         - route         url  
3         - view     
4         - kwargs     ,   view,        
5         - name url   

 
正規表現re_pathは、日付など、必要なフォーマットを構成できます.
1     - re_path(route, view, kwargs=None, name=None)
2     
3     python             : (?pattern)
4     
5 6     re_path(r'students/(?P\d{4})/(?P[0-9]|1[0-2])', views.students)

 
urlでパラメータをキャプチャし、パラメータの伝達をpathで構成します.
 1     -  url     
 2          url         url   
 3           path('index//', view.index)
 4                   -  :  -
 5         
 6         views.py          ,      
 7           def detail(request, key1, key2)
 8         
 9              
10         **      '   '
11         
12                        :127.0.0.1:8000/index/'key1'/'key2'/

 
パスコンバータ-パスコンバータ
 
      - str     '/'             
            - int       
            - slug     ASCII  ,         
            - uuid    id
            - path         
   :
  path('index//', view.inedex)

 
 
 
django検索url検索は何ですか?
           ,   ,      (get, post)  
    
       url      get,post

 
その他のURLconfsを含んで、プロジェクトの中で(app応用)の下級urlsの方法を追加して、include
1 include  
2   from django.urls import include 
3 
4     path('teacher/', include('teacher.urls')) 
5     
6              ,      ,teacher   app       ,    views    ,       。        。

 
追加パラメータの転送
kwargsのkeyがurlキャプチャのkeyと一致する場合、kwargsに準じる
1     path,re_path    ,    kwargs     
2     
3     kwargs={key:value}     
4     
5     ***** kwargs  key url    key     , kwargs  *****
6                urls include   ,         app     urls        
7 
8     include    
9     path('teacher/', include('teacher.urls'),kwargs={'key':'value'} 

 
urlネーミング、リダイレクト
 1  from django.shortcuts import render, redirect, reverse
 2     views.py     
 3     
 4        
 5return redirect('http://www.baidu.com')
 6       
 7     return redirect('/teacher/index/')    
 8     
 9      urls   path   name  
10     path('home/', views.index, name='index')
11     
12            
13      views             
14     
15     url = reverse('index')       reverse     ,url  path          
16     return redirect(url)

 
1     app_name
2           ,    ,  urls   
3     app_name = 'teacher'
4      views             reverse
5     def login(request):
6         url = reverse('teacher:index')
7     
8        
9     redirect(url)

 
HTMLテンプレートのインポート
setting.pyでのテンプレートのインポートの設定
1  TEMPLATES   'DIRS':[os.path.join(BASE_DIR,'templates(html         )']

 
レンダリングviewsインポート
1     
2          
3 
4     from django.template.loader import get_template
5 
6     #def index(request):
7         tp = get_template('teacher/index.html')  #        
8         html = tp.render()    #  html  
9         return HttpResponse(html)    html  

 
 
1          (    :  )
2 
3     from django.shortcuts import render
4     
5     #def index(request):
6         return render(request, 'teacher/index.html')

 
 
ここで終わります.ありがとうございます.
 
転載先:https://www.cnblogs.com/hua888/p/10401721.html