zdá sa, že to je z mojej strany nepochopenieako funguje konfigurácia webových adries v django. Myslel som si, že prvý regulárny výraz, ktorý sa zhoduje, je tam, kde sa dostane „odoslaný“, ale ak mám iných v zozname webových adries, pôjde im namiesto prvého.
Obsah projektu urls.py
keď je web správcu prístupný:
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r"^admin/", admin.site.urls),
#url(r"^api/", include("api.urls")),
#url(r"^index", include("limbo.urls")),
#url(r"^polls/", include("polls.urls")),
# url(r"^limbo/", include("limbo.urls")),
#url(r"edit/", include("limbo.urls")),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
ale keď zruším komentáre 1., 2. alebo posledného riadku na komentár, zobrazí sa chyba:
invalid literal for int() with base 10: ""
Nejaké nápady?
Napríklad, ak zruším komentár, ktorý hovorí url(r"^api/", include("api.urls")),
, Dostanem chybu, ktorú som uviedol.
api/urls.py
obsah:
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r"^(?:addUse.?[html]{,4})?$", views.addUsageHistory, name="addUsageHistory"),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
a V spätnom sledovaní vidím, že má pôvod v tomto súbore:
/home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/login.html
a cesty dole po komíne (druhý zdola), to vidím v /home/ec2-user/limbo/limboenv/local/lib/python2.7/site-packages/django/utils/regex_helper.py
, premenná pattern
je nastavený na "(?:addUse\.?[html]{,4})?$
, čo je jedna z hodnôt v api/urls.py
, Prečo by to vôbec skončilo v api / urls.py? malo to ísť na admin.site.urls skôr, ako to kedy videla r"^api/"
odpovede:
0 pre odpoveď č. 1ako to tak často býva, prišiel som na to po tak dlhom údere hlavou o stenu, potom hneď ako zverejním otázku na SO, som na to prišiel. pre budúce použitie pomocou ?:
na začiatku regulárneho výrazu v aplikácii urls.py
je veľmi nebezpečný. Zmenil som svoju aplikáciu urls.py, aby som ju nemal a všetko funguje podľa očakávaní. vidieť moje udpated api/urls.py
tu:
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r"^addUse.html$", views.addUsageHistory, name="addUsageHistory"),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)