ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

Django·ÓÉÅäÖ÷½·¨ºÍ×¢ÒâÎÊÌâÏê½â

¸üÐÂʱ¼ä:2021Äê03ÔÂ10ÈÕ16ʱ59·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

ºÃ¿Ú±®ITÅàѵ

DjangoÖзÓɵÄ×÷Óãº

    Æä±¾ÖÊÊÇURLÓë¸ÃURLÒªµ÷ÓõÄÊÓͼº¯ÊýÖ®¼äµÄÓ³É䣬¾ÍÊÇΪ¸æËßDjango¶Ô¿Í»§¶Ë·¢¹ýÀ´µÄij¸öURLÓ¦¸Ãµ÷ÓÃÖ´ÐÐÄÄÒ»¶ÎÂß¼­´úÂë

·ÓÉ»ù±¾µÄÅäÖãº

from django.conf.urls import url

# urlpatterns±ØÐëÊÇÒ»¸öÓÉurl()ʵÀý×é³ÉµÄPythonÁбí
urlpatterns = [
  	# url(regex, view, kwargs=None, name=None),
    url(/news/20210310/ÕýÔò±í´ïʽ, ÊÓͼº¯ÊýÃû, ¿ÉÑ¡²ÎÊý£¬ ·ÓɱðÃû),
]

"""
url()º¯ÊýÖеIJÎÊý½âÊÍ£º
    ÕýÔò±í´ïʽ£ºÒ»¸öÕýÔò±í´ïʽ×Ö·û´®
    viewsÊÓͼº¯Êý£ºÒ»¸ö¿Éµ÷ÓöÔÏó£¬Í¨³£ÎªÒ»¸öÊÓͼº¯Êý»òÒ»¸öÖ¸¶¨ÊÓͼº¯Êý·¾¶µÄ×Ö·û´®
    ²ÎÊý£º¿ÉÑ¡µÄÒª´«µÝ¸øÊÓͼº¯ÊýµÄĬÈϲÎÊý£¨×ÖµäÐÎʽ£©
    ±ðÃû£ºÒ»¸ö¿ÉÑ¡µÄname²ÎÊý£¬ÓÃÓÚ·´Ïò½âÎö
"""

ϸ˵urlº¯ÊýµÄµÚÒ»¸ö²ÎÊý£º

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(/news/20210310/r&)/$', views.year_archive),
    url(/news/20210310/r&)/([0-9]{2})/$', views.month_archive),
    url(/news/20210310/r&)/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

==×¢Òâµã£º==

  1. urlpatternsÁбíÖеÄÔªËØ°´ÕÕÊéд˳Ðò´ÓÉÏÍùÏÂÖðһƥÅäÕýÔò±í´ïʽ£¬Ò»µ©Æ¥Åä³É¹¦Ôò²»ÔÙ¼ÌÐø¡£
  2. µ±ÇëÇóÆ¥ÅäurlpatternsÍêËùÓÐÔªËØºóҲδƥÅä³É¹¦£¬¾Í»áÏò¿Í»§¶Ë·µ»Ø404.
  3. ÈôÒª´ÓURLÖв¶»ñÒ»¸öÖµ£¬Ö»ÐèÒªÔÚ ==/  /== Àï·ÅÖÃÒ»¶ÔÔ²À¨ºÅ£¬²¢Ð´É϶ÔÓ¦µÄÕýÔòÆ¥Åä¼´¿É£¨·Ö×鯥Å䣩¡£
  4. ²»ÐèÒªÌí¼ÓÒ»¸öǰµ¼µÄ·´Ð±¸Ü£¬ÒòΪÿ¸öURL ĬÈÏÇ°Ãæ¾Í»áÓз´Ð±¸Ü¡£ÀýÈ磬Ӧ¸ÃÊÇ^articles ¶ø²»ÊÇ ^/articles¡£
  5. ÿ¸öÕýÔò±í´ïÊ½Ç°ÃæµÄ'r' ÊÇ¿ÉÑ¡µÄµ«Êǽ¨Òé¼ÓÉÏ¡£ÈÃÕýÔò×Ö·û´®ÖÐÈκÎ×Ö·û¶¼²»±»×ªÒ壬±£Áôԭʼ¡£

·ÓÉÕýÔò±í´ïʽ½áβÊÇ·ñÒª¼Ó '/'  ËµÃ÷:

from django.conf.urls import url
from app01 import views

urlpatterns = [
		url(r'^index/$', views.index),  # ½áβ¼Ó'/'  
  	url(r'^test$', views.test),  # ½áβ²»¼Ó '/'
]

ÀýÈ磺

    ²âÊÔ1£º·ÃÎÊhttp://127.0.0.1:8000/index»òhttp://127.0.0.1:8000/index/ ½á¹û¶¼Êdzɹ¦µÄ£¬ÒòΪµ±·ÃÎÊhttp://127.0.0.1:8000/indexʱ»á×Ô¶¯×ö301ÖØ¶¨Ïòµ½http://127.0.0.1:8000/index/

URL01

    ²âÊÔ2£º·ÃÎÊhttp://127.0.0.1:8000/testÊdzɹ¦µÄ£¬ http://127.0.0.1:8000/test/¾Í»áʧ°ÜÁË

URL02


ÄÇôµ½µ×ÊÇʲôԭÒò£¿Ôõô»áÕâÑùÄØ?

# Èç·ÓÉÖнáβÓÐ'/' µ«ÇëÇóÖеÄurl½áβûÓмÓ'/'Æ¥ÅäʱÊÇ·ñÔÚURLÖи½¼Óβ²¿Ð±¸Ü TrueÌí¼Ó£¬False²»Ìí¼Ó
APPEND_SLASH=True  # DjangoµÄglobal_settingsµÄĬÈÏÅäÖÃ

²âÊÔ1ÖУºhttp://127.0.0.1:8000/indexд·¨Ò²ÄÜ·ÃÎʳɹ¦µÄÔ­Òò¾ÍÊÇAPPEND_SLASHĬÈÏÉèÖÃÁËΪTrue£¬µ«ÊÇÈç¹û°Ñ´ËÅäÖøÄΪFalse£¬ÄÇô·ÃÎÊ r'^index/$' ·ÓÉʱ¾Í±ØÐëÔÚ½áβµÄ¼ÓÉÏ'/'¡£

×ܽ᣺

Óɴ˲âÊÔ¿ÉÒÔ˵Ã÷ÔÚ¶¨Òå·ÓÉʱ½áβ¼ÓÉÏ '/ ' »áÈ÷Óɸü¼ÓÁé»î¡£

ûÓÐÃüÃûµÄÕýÔò±í´ïʽ×飺

# ½«¼ÓÔ²À¨ºÅµÄÕýÔò±í´ïʽƥÅäµ½µÄÄÚÈݵ±×öλÖòÎÊý×Ô¶¯´«µÝ¸ø¶ÔÓ¦µÄÊÓͼº¯Êý

# ·Óɲã
url(r'^test/(\d+)/',views.test),  # Æ¥ÅäÒ»¸ö»ò¶à¸öÊý×Ö

# ÊÓͼ²ã
def test(request, num):   # num½ÓÊÕµ½´Ó·ÓÉÀ¨ºÅÔ²À¨ºÅÄÚ£¬ÏàÓ¦ÕýÔò±í´ïʽÖÐÆ¥ÅäµÄÖµ
    print(num)
    return HttpResponse('test')

ÓÐÃüÃûµÄÕýÔò±í´ïʽ×飺

    ÔÚPythonµÄÕýÔò±í´ïʽÖУ¬·Ö×éÃüÃûÕýÔò±í´ïʽ×éµÄÓï·¨ÊÇ(?P<name>pattern)£¬ÆäÖÐnameÊÇ×éµÄÃû³Æ£¬patternÊÇҪƥÅäµÄģʽ

# ½«¼ÓÔ²À¨ºÅµÄÕýÔò±í´ïʽƥÅäµ½µÄÄÚÈݵ±×ö¹Ø¼ü×Ö²ÎÊý×Ô¶¯´«µÝ¸ø¶ÔÓ¦µÄÊÓͼº¯Êý

# ·Óɲã
url(r'^test/(?P<year>\d+)/',views.test),  # Æ¥ÅäÒ»¸ö»ò¶à¸öÊý×Ö

# ÊÓͼ²ã
def test(request, year):  # ´Ë´¦µÄÐβÎÃûÒ»¶¨ÒªºÍÕýÔò×éÃüÃûÒ»ÖÂ
    print(year)
    return HttpResponse('test')

ÏÂÃæÊÇ´úÂëÊÇ Ê¹ÓÃÓÐÃüÃûµÄÕýÔò±í´ïʽ×éÖØÐ´£º

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(/news/20210310/r&)/$', views.year_archive),
    url(/news/20210310/r&)/(?P<month>[0-9]{2})/$', views.month_archive),
    url(/news/20210310/r&)/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
]

    Õâ¸öʵÏÖÓëÇ°ÃæµÄʾÀýÍêÈ«Ïàͬ£¬Ö»ÓÐÒ»¸öϸ΢µÄ²î±ð£º²¶»ñµÄÖµ×÷Ϊ¹Ø¼ü×Ö²ÎÊý¶ø²»ÊÇλÖòÎÊý´«µÝ¸øÊÓͼº¯Êý¡£

    ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Ê¹ÓÃÓÐÃüÃûµÄÕýÔò±í´ïʽ×é»á¸ü¼ÓÃ÷ÎúÇÒ²»ÈÝÒײúÉú²ÎÊý˳ÐòÎÊÌâµÄ´íÎó —— Äã¿ÉÒÔÔÚÄãµÄÊÓͼº¯Êý¶¨ÒåÖÐÖØÐ°²ÅŲÎÊýµÄ˳Ðò¡£ µ±È»£¬ÕâЩºÃ´¦ÊÇÒÔ¼ò½àΪ´ú¼ÛµÄ£»Ò»Ð©¿ª·¢ÈËÔ±·¢ÏÖÃüÃû×éÓï·¨³óª¶øÇÒÌ«Èß³¤¡£

×¢Ò⣺

  ÎÞÃûÕýÔò±í´ïʽ×éºÍÓÐÃûÕýÔò±í´ïʽ×é²»ÄÜ»ì×ÅÓã¡£¡£¡# Ҫô¶¼²»ÃüÃû

url(/news/20210310/r&)/([0-9]{2})/$', views.month_archive), 
# ÒªÃüÃû¶¼ÒªÃüÃû
url(/news/20210310/r&)/(?P<month>[0-9]{2})/$', views.month_archive), 
# ²»ÄÜÕâÑù»ì×ÅÓ㬱¨´íÌáʾȱÉٱش«Î»ÖòÎÊý
url(/news/20210310/r&)/([0-9]{2})/$', views.month_archive),

ÕýÔò±í´ïʽ×é²¶»ñµÄ²ÎÊý¶¼ÊÇ×Ö·û´®ÀàÐÍ£º

    ÿ¸ö²¶»ñµÄ²ÎÊý¶¼×÷Ϊһ¸öÆÕͨµÄPython ×Ö·û´®´«µÝ¸øÊÓͼ£¬ÎÞÂÛÕýÔò±í´ïʽʹÓõÄÊÇʲôƥÅ䷽ʽ¡£ ÀýÈ磬

url(/news/20210310/r&)/$', views.year_archive),

    ´«µÝ¸øviews.year_archive()µÄyear²ÎÊý½«ÊÇÒ»¸ö×Ö·û´®£¬²»ÊÇÕûÊý£¬¼´Ê¹[0-9]{4}ֻƥÅäÕûÊý×Ö·û´®

Ö¸¶¨ÊÓͼ²ÎÊýµÄĬÈÏÖµ£º

    ÔÚÕâÀï¸ø´ó¼Ò˵һ¸ö·½±ãµÄС¼¼ÇÉÊÇÖ¸¶¨ÊÓͼ²ÎÊýµÄĬÈÏÖµ¡£ URLconf ºÍÊÓͼµÄʾÀý£º

# URLconf
from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^blog/$', views.page),
    url(/news/20210310/r&)/$', views.page),
]

# View (in blog/views.py)
def page(request, num="1"):
    # ´Ë´¦Ê¡ÂÔÈô¸ÉÐдúÂë...

ÔÚÉÏÃæµÄÀý×ÓÖУº

    Á½¸öURLÖ¸Ïòͬһ¸öÊÓͼviews.page

    µ«ÊǵÚÒ»¸ö²»»á´ÓURL Öв¶»ñÈκÎÖµ¡£ Èç¹ûµÚÒ»¸öÆ¥Åä³É¹¦£¬page() º¯ÊýÖÐnum½«Ê¹ÓÃĬÈϵIJÎÊýÖµ"1"¡£

	Èç¹ûµÚ¶þ¸öģʽƥÅ䣬`page()` ½«Ê¹ÓÃÕýÔò±í´ïʽ²¶»ñµÄ`num` Öµ¡£

ͨ¹ýÉÏÃæÀý×Ó£¬Äã·¢ÏÖÁËÊ²Ã´ÄØ£¿

    ˵Ã÷ÎÒÃÇÊÓͼº¯ÊýÖÐµÄÆÕͨ²ÎÊý±äΪĬÈϲÎÊýºó£¬¿ÉÒÔÈÃÎÒÃǵÄÊÓͼº¯Êý±äµÄ¸üÁé»î£¬ÕâÑùÎÒÃÇ¿ÉÒÔÈÃÒ»¸öÊÓͼº¯Êý±»¶àÖÖ·ÓÉÈ¥Áé»îʹÓá£

²ÂÄãϲ»¶

ʲôÊÇPython?×îÈ«µÄpython°Ù¿Æ

ѧ»ápython¿ÉÒÔ×öʲô£¿ÕâЩºÃ´¦ÄãÏëÏó²»µ½

Djangoº£Á¿Êý¾Ý¼¯·ÖÒ³ÓÅ»¯·½·¨

ʹÓÃDjangoÖмä¼þµÄÁùÖÖ·½·¨

Python+Êý¾Ý·ÖÎö¿Î³Ì

0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿