ÀÖÓãµç¾º

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

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

DjangoÖ®URL·´Ïò½âÎö½éÉÜ[ÀÖÓã²¥¿Í]

¸üÐÂʱ¼ä:2019Äê10ÔÂ15ÈÕ17ʱ07·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

Ò»¡¢urlsÓ²±àÂë

ÔÚ·´Ïò½âÎöºÍÃüÃû¿Õ¼ä֮ǰÎÒÃÇÏÈÀ´ËµËµURLSÓ²±àÂ룬ÓÃdjango¿ª·¢Ó¦?µÄʱºò£¬¿ÉÒÔÍêÈ«ÊÇÔÚurls.pyÖÐÓ²±àÂëÅäÖõØÖ·,ÔÚviews.pyÖÐHttpResponseRedirect()Ò²ÊÇÓ²±àÂëתÏòµØÖ·£¬µ±È»ÔÚtemplateÖÐÒ²ÊÇÒ»ÑùÁË£¬ÕâÑù´øÀ´Ò»¸öÎÊÌ⣬Èç¹ûÔÚurls.pyÖÐÐÞ¸ÄÁËij¸öÒ³ÃæµÄµØÖ·(Ò²¾ÍÊÇ˵¸ü¸Ä·ÓÉϵͳÖжÔÓ¦µÄ·ÓÉ·Ö·¢)£¬ÄÇôËùÓеĵط½(views.pyºÍtemplateÖÐ)¶¼ÒªÐ޸ġ£ÎÊÌâ³öÔÚÓ²±àÂ룬½ôñîºÏʹµÃÔÚ´óÁ¿µÄÄ£°åÖÐÐÞ¸ÄURLS³ÉΪ¸»ÓÐÌôÕ½ÐÔµÄÏîÄ¿¡£À´¿´ÏÂÃæµÄÄ£°åÎļþindex.htmlÖУ¬ÎÒÃǵ½µÄÁ´½ÓÓ²±àÂë³ÉÕâÑù£º

<li><a href="/goods/index/">urlÓ²±àÂë</a></li>

Èç¹ûʹÓÃÈí±àÂëÖ®ºó£¬ÎÞÂÛÔõô¸ü¸Ä·ÓÉϵͳÖеÄ·ÓÉ·Ö·¢£¬Ö»ÓжÔÓ¦µÄnamespaceÓënameÊôÐÔÖµ²»±ä£¬¾Í²»±ØÐÞ¸ÄÔÚviews.pyºÍtemplateÖеÄurl£¬Ò²¾ÍÊÇ˵

<li><a href="{% url "good:index" %}">urlÈí±àÂë</a></li>

ÔÚtemplatesÖиü¸ÄΪÈí±àÂëÖ®ºó£¬ÆäʵÔÚtemplates£¬index.htmlÎļþÉú³ÉµÄʱºò£¬ÈÔÈ»ÊÇ

<li><a href="/goods/index/">urlÈí±àÂë</a></li>
DjangoÖ®URL·´Ïò½âÎö

¶þ¡¢URLµÄ·´Ïò½âÎö

ÔÚʹÓÃDjangoÏîĿʱ£¬Ò»¸ö³£¼ûµÄÐèÇóÊÇ»ñµÃURLµÄ×îÖÕÐÎʽ£¬ÒÔÓÃÓÚǶÈëµ½Éú³ÉµÄÄÚÈÝÖÐ(ÊÓͼÖкÍÏÔʾ¸øÓû§µÄURLµÈ)»òÕßÓÃÓÚ´¦Àí·þÎñÆ÷¶ËµÄµ¼º½(ÖØ¶¨ÏòµÈ)¡£ ÈËÃÇÇ¿ÁÒÏ£Íû²»ÒªÓ²±àÂëÕâЩURL(·ÑÁ¦¡¢²»¿ÉÀ©Õ¹ÇÒÈÝÒײúÉú´íÎó)»òÕßÉè¼ÆÒ»ÖÖÓëURLconfºÁ²»Ïà¹ØµÄרÃŵÄURLÉú³É»úÖÆ£¬ÒòΪÕâÑùÈÝÒ×µ¼ÖÂÒ»¶¨³Ì¶ÈÉϲúÉú¹ýÆÚµÄURL¡£¡¾ÍƼöÁ˽⣺python+È˹¤ÖÇÄܿγ̡¿

»ñȡһ¸öURL×ʼÏëµ½µÄÐÅÏ¢ÊÇ´¦ÀíËüÊÓͼµÄ±êʶ(ÀýÈçÃû×Ö)£¬²éÕÒÕýÈ·µÄURLµÄÆäËü±ØÒªµÄÐÅÏ¢ÓÐÊÓͼ²ÎÊýµÄÀàÐÍ(λÖòÎÊý¡¢¹Ø¼ü×Ö²ÎÊý)ºÍÖµ¡£DjangoÌṩһ¸ö°ì·¨ÊÇÈÃURLÓ³ÉäÊÇURLÉè¼ÆÎ¨Ò»µÄµØ·½¡£ÄãÌî³äÄãµÄURLconf£¬È»ºó¿ÉÒÔË«ÏòʹÓÃËü£º

£¨1£©¸ù¾ÝÓû§/ä¯ÀÀÆ÷?·¢ÆðµÄURL ÇëÇó£¬Ëüµ÷?ÓÃÕýÈ·µÄDjango ÊÓͼ£¬²¢´ÓURL ÖÐÌáÈ¡ËüµÄ²ÎÊýÐèÒªµÄÖµ¡£

£¨2£©¸ù¾ÝDjangoÊÓͼµÄ±êʶºÍ½«Òª´«µÝ¸øËüµÄ²ÎÊýµÄÖµ£¬»ñÈ¡ÓëÖ®¹ØÁªµÄURL¡£

µÚÒ»ÖÖ·½Ê½ÊÇÎÒÃdz£ËµµÄ¸ù¾ÝµØÖ·¶¨Î»URL¡£

µÚ¶þÖÖ·½Ê½½Ð×ö·´Ïò½âÎöURL¡¢·´ÏòURL Æ¥Åä¡¢·´ÏòURL²éѯ»òÕß¼òµ¥µÄURL·´²é¡£ÔÚÐèÒªURLµÄµØ·½¡£

¶ÔÓÚ²»Í¬²ã¼¶£¬DjangoÌṩ²»Í¬µÄ¹¤¾ßÓÃÓÚURL ·´²é£º

(1)ÔÚÄ£°åÖУºÊ¹?ÓÃurlÄ£°å±êÇ©¡£

(2)ÔÚPython´úÂëÖУºÊ¹?django.core.urlresolvers.reverse() º¯Êý¡£

(3)ÔÚ¸ü¸ß²ãµÄÓë´¦ÀíDjangoÄ£ÐÍʵÀýÏà¹ØµÄ´úÂëÖУºÊ¹ÓÃget_absolute_url()·½·¨¡£


1¡¢ÃüÃû¿Õ¼ä£º

URLÃüÃû¿Õ¼äÔÊÐíÄã·´²éµ½Î¨Ò»µÄÃüÃûURLģʽ£¬¼´Ê¹²»Í¬µÄÓ¦ÓÃʹÓÃÏàͬµÄURL Ãû³Æ¡£µÚÈý·½Ó¦ÓÃʼÖÕʹÓôøÃüÃû¿Õ¼äµÄURL ÊÇÒ»¸öºÜºÃµÄʵ¼ù¡£ÀàËÆµØ£¬Ëü»¹ÔÊÐíÄãÔÚÒ»¸öÓ¦ÓÃÓжà¸öʵÀý²¿ÊðµÄÇé¿öÏ·´²éURL¡£»»¾ä»°½²£¬ÒòΪһ¸öÓ¦ÓõĶà¸öʵÀý¹²ÏíÏàͬµÄÃüÃûURL£¬ÃüÃû¿Õ¼ä½«ÌṩһÖÖÇø·ÖÕâЩÃüÃûURL µÄ·½·¨¡£Ò»¸öURLÃüÃû¿Õ¼äÓÐÁ½¸ö²¿·Ö£¬ËüÃǶ¼ÊÇ×Ö·û´®£º

<1>Ó¦ÓÃÃüÃû¿Õ¼ä:

Ëü±íʾÕýÔÚ²¿ÊðµÄÓ¦ÓõÄÃû³Æ¡£Ò»¸öÓ¦ÓõÄÿ¸öʵÀýÀý¾ßÓÐÏàͬµÄÓ¦ÓÃÃüÃû¿Õ¼ä¡£ÀýÈ磬¿ÉÒÔÔ¤¼ûDjangoµÄ¹ÜÀíÕ¾µãµÄÓ¦?ÃüÃû¿Õ¼äÊÇ'admin '¡£

<2>ʵÀýÃüÃû¿Õ¼ä:

Ëü±íʾӦÓõÄÒ»¸öÌØ¶¨µÄʵÀý¡£ÊµÀýµÄÃüÃû¿Õ¼äÔÚÄãµÄÈ«²¿ÏîÄ¿ÖÐÓ¦¸ÃÊÇΨһµÄ¡£µ«ÊÇ£¬Ò»¸öʵÀýµÄÃüÃû¿Õ¼ä¿ÉÒÔºÍÓ¦ÓõÄÃüÃû¿Õ¼äÏàͬ¡£ËüÓÃÓÚ±íʾһ¸öÓ¦ÓõÄĬÈÏʵÀý¡£ÀýÈ磬Django¹ÜÀíÕ¾µãʵÀý¾ßÓÐÒ»¸öĬÈϵÄʵÀýÃüÃû¿Õ¼ä'admin'¡£URLµÄÃüÃû¿Õ¼äʹÓÃ':'²Ù×÷·ûÖ¸¶¨¡£ÀýÈ磬¹ÜÀíÕ¾µãÓ¦ÓõÄÖ÷ҳʹÓÃ'admin:index'¡£Ëü±íʾ'admin'µÄÒ»¸öÃüÃû¿Õ¼äºÍ'index'µÄÒ»¸öÃüÃûURL¡£

££ includeº¯ÊýµÄAPI
include(arg, namespace=None, app_name=None)
££ namespaceÉèÖÃʵÀýÀýÃüÃû¿Õ¼ä£¬app_nameÉèÖÃÓ¦?ÓÃÃüÃû¿Õ¼ä
££ ²»²»ÄÜÖ»ÉèÖÃapp_name£¬·ñÔò»á±¨´í£¬ÒÔÏÂÊDZ¨´íµÄÔ´Âë
if app_name and not namespace:
raise ValueError('Must specify a namespace if specifying app_name.')

Ò»°ãÀ´Ëµ£¬Í¬Ò»Ó¦ÓÃϵIJ»Í¬ÊµÀýÓ¦¸Ã¾ßÓÐÏàͬµÄÓ¦ÓÃÃüÃû¿Õ¼ä£¬µ«ÊÇ£¬Õâ²¢²»Òâζ×Ų»Í¬Ó¦ÓÿÉÒÔʹÓÃÏàͬµÄʵÀýÃüÃû¿Õ¼ä£¬ÒòΪʵÀýÃüÃû¿Õ¼äÔÚÄãËùÓÐÏîÄ¿Öж¼ÊÇΨһµÄ¡£

ÎÊÌ⣺ ÁíÍâÔÚÌí¼ÓÃüÃû¿Õ¼ä namespaceʱ¿ÉÄÜ»á³öÏÖÒÔÏÂÕâ¸öÎÊÌ⣺

'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in
include() without providing an app_name is not supported. Set the app_name
attribute in the included module, or pass a 2-tuple containing the list of
patterns and app_name instead.

½â¾ö·½°¸Îª£º

ÔÚ¶ÔÓ¦µÄappÓ¦ÓõÄurls.pyÖÐÌí¼Óapp_name = '[Ó¦ÓÃÃû³Æ]'ÈçÏÂ

from django.conf.urls import url
from . import views
app_name = 'users'
# usersΪµ±Ç°Ó¦?ÓõÄÃû³Æ
urlpatterns = [
url('^$', views.index),
url('^(\d+)/$', views.detail),
]

Èý¡¢url·´Ïò½âÎöʵÀý

ÔÚÎÒÃǵÄdjangoÏîÄ¿ÖÐͨ³£App£¬Ä¿Â¼½á¹¹¾Í¿ÉÒÔÈçÏÂdaily_fresh_demo

daily_fresh_demo¡¡
¡¡|----daily_fresh_demo
¡¡¡¡¡¡¡¡|----__init__.py
¡¡¡¡¡¡¡¡|----settings.py
¡¡¡¡¡¡¡¡|----urls.py
¡¡¡¡¡¡¡¡|----wsgi.py
¡¡¡¡|----df_cart #¶ÔÉÌÆ·¹ºÎï?³µ¹ÜÀíÀí
|---- migrations # Ç¨ÒÆ?Îļþ?Ŀ¼
|---- admin.py
|---- apps.py
|---- models.py
|---- test.py
|---- urls.py
|---- views.py
|---- __init__.py
¡¡¡¡|----df_goods¡¡¡¡#ÉÌÆ·ÒÔ¼°ºǫ́¹ÜÀíÀí
...
¡¡¡¡|----df_user #?Óû§¹ÜÀíÀí
...
¡¡¡¡|----df_order #¶©µ¥¹ÜÀíÀí
...
¡¡¡¡|----templates
¡¡¡¡¡¡¡¡ |index.html

1¡¢Â·ÓÉ·Ö·¢£º

daily_fresh_demo/daily_fresh_demo/urls.py
from django.contrib import admin

from django.urls import path

from django.conf.urls import url, include
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^goods/', include('df_goods.urls', namespace='df_goods')), # Ìí
¼ÓʵÀýÀýÃüÃû¿Õ¼ä
url(r'^user/', include('df_user.urls', namespace='df_user')),
url(r'^cart/', include('df_cart.urls', namespace='df_cart')),
url(r'^order/', include('df_order.urls', namespace='df_order')),
]

¸ù¾Ý·ÓÉ·Ö·¢µ½¸÷¸öÏàÓ¦µÄappÖС£²¢Ìí¼ÓʵÀýÃüÃû¿Õ¼ä


2¡¢×Ó·ÓÉ

daily_fresh_demo/df_goods/urls.py
from django.conf.urls import url
from . import views
app_name = 'df_goods' # Ó¦?ÓÃÃüÃû¿Õ¼ä
urlpatterns = [
url('^index/$', views.index, name="index"),
]

df_goodsÖеÄ·ÓÉ£¬Ìí¼ÓÓ¦?ÃüÃû¿Õ¼ä¡£²¢ÔÚurlº¯ÊýÖÐÌí¼ÓnameÊôÐÔ¡£

3¡¢ÊÓͼº¯Êý

daily_fresh_demo/df_goods/views.py
from django.shortcuts import render, reverse
def index(request):
print(reverse("df_goods:index")) # ÀûÀû?ÓÃreverseº¯Êý·´Ïò½âÎöurl
¡¡¡¡# ´òÓ¡½á¹ûΪ/goods/index/
return render(request, 'index.html')

4¡¢¾²Ì¬Îļþindex.html

daily_fresh_demo/templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<a href="/goods/index">Ó²Á´½Ó</a>
<a href="{% url "df_goods:index" %}">ÈíÁ´½Ó</a>
</body>
</html>

5¡¢½á¹û

¾²Ì¬ÎļþÖÐindex.htmlµÄurl½âÎö½á¹ûÈçÏÂ

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<a href="/goods/index">Ó²Á´½Ó</a>
<a href="/goods/index/">ÈíÁ´½Ó</a> # Èí±àÂëͨ¹ý½âÎöºóµÃµ½µÄ½á¹ûÓëÓ²±àÂë?Ò»ÖÂ
</body>
</html>

×ܽ᣺ÕâÑùÒ»À´Í¨¹ýÃüÃû¿Õ¼ä£¬ÎÞÂÛÔÚtemplatesÎļþÖÐÓжàÅÓ´óµÄurlµØÖ·Ó³É䣬ֻҪʹÓÃurlÈí±àÂ룬ÔÚ¸ü¸Ä·ÓÉϵͳµÄʱºò£¬¶¼ÄÜ×Ô¶¯Éú³É¡£¶øÈç¹ûʹÓÃÓ²Á´½ÓÓ²±àÂ룬¾ÍÖ»ÄÜÔÚviews.pyºÍ¾²Ì¬ÎļþÖÐÖð¸öÐÞ¸ÄurlµØÖ·£¬²»½öºÄ·Ñʱ¼ä£¬¸üÈÝÒײúÉú´íÎó¡£

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