urls tutorial template example django django-urls

tutorial - httpresponse django example



URLs de Django, ¿cómo mapear raíz a aplicación? (5)

Como no vi ninguna respuesta para django 2.0, pensé que iba a proporcionar una. tienes que usar '''' como la url raíz. Aquí hay un ejemplo de django 2.0 docs

urlpatterns = [ path('''', main_views.homepage), path(''help/'', include(''apps.help.urls'')), path(''credit/'', include(extra_patterns)), ]

Soy bastante nuevo en django pero tengo experiencia en programación web de Python y Java con diferentes frameworks. Me he hecho una buena aplicación de django, pero no puedo hacer que coincida con www.misitio.com en lugar de www.misitio.com/myapp.

He definido urls y views en mi urls.conf que actualmente no está desacoplado de la aplicación (no me importa).

urlpatterns = patterns(''myapp.views'', (r''^myapp/$'', ''index''), (r''^myapp/(?P<some_id>/d+)/global_stats/$'', ''global_stats''), (r''^myapp/(?P<some_id>/d+)/player/(?P<player_id>/d+)/$'', ''player_stats''), )

Todo esto funciona como un encanto. Si alguien va a www.misitio.com/myapp, accederá a mi vista de índice, lo que provoca una redirección http a mi URL predeterminada "correcta".

Entonces, ¿cómo puedo agregar un patrón que haga lo mismo que (r ''^ myapp / $'', ''index'') pero sin / myapp, es decir, www.mysite.com debería ser suficiente?

Pensaría que esto sería algo muy básico ... Traté de agregar una línea como:

(r''^$'', ''index''),

sin embargo, esto me pone en un bucle ...

Espero que django gurús por ahí puede aclarar esto para mí!


Esto suena extraño.

Su último intento debería funcionar, pero lo que normalmente hago - poner

urlpatterns = patterns('''', (r''^$'', lambda r: HttpResponseRedirect(''myapp/'')), ... )

Esto se escala mejor cuando comienzas a agregar nuevas aplicaciones.


Sé que esta pregunta fue hecha hace 2 años, pero me he enfrentado al mismo problema y encontré una solución:

En el proyecto urls.py :

urlpatterns = patterns('''', url(r''^'', include(''my_app.urls'')), #NOTE: without $ )

En my_app.urls.py :

urlpatterns = patterns('''', url(r''^$'', ''my_app.views.home'', name=''home''), url(r''^v1/$'', ''my_app.views.v1'', name=''name_1''), url(r''^v2/$'', ''my_app.views.v2'', name=''name_2''), url(r''^v3/$'', ''my_app.views.v3'', name=''name_3''), )


Sé que la respuesta es tardía, pero tuve mi parte justa de la caza recientemente. Esto es lo que probé con CBV .. en Project urls.py

urlpatterns = [ url(r''^admin/'', admin.site.urls), url(r''^$'', include(''app_name.urls'', namespace=''app_name'')), ]

PD: siempre se recomienda usar el espacio de nombres. Da una buena ventaja más adelante.

En la aplicación urls.py

urlpatterns = [ url(r''^$'', views.IndexPageView.as_view(), name=''index''), ]


Simplemente ponga una expresión regular en bruto vacía: r ''''

Probé aquí y funcionó perfectamente.

urlpatterns = patterns('''', url(r'''', include(''homepage.urls'')), url(r''^homepage/'', include(''homepage.urls'')), url(r''^admin/'', include(admin.site.urls)), )

Espero que ayude!