es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para exponer una serie de URLs definidas en una aplicación, se puede utilizar el sistema de enrutamiento de URL de Django. En su caso, tiene 20,000 activos almacenados que desea servir en un intervalo manual, los cuales se alojan en /metadata/type1_1 y /metadata/type2_1. Para definir el esquema de URL que limita las URLs en función de max_available_metadata, puede utilizar expresiones regulares para hacer coincidir las URLs y capturar las partes dinámicas de la URL.

    Por ejemplo, para limitar las URL hasta 25, puede definir los siguientes patrones de URL en Django URLconf:

    from django.urls import path
    
    urlpatterns = [
        path('metadata/type1_<int:pk>/', views.type1_detail),
        path('metadata/type2_<int:pk>/', views.type2_detail),
    ]
    

    Aquí, la parte <int:pk> del patrón de URL captura el valor entero después del carácter _ en la URL. Cuando se solicita una URL, Django la busca contra estos patrones de URL de arriba a abajo hasta que encuentra una coincidencia. Si la URL coincide con uno de los patrones de URL y el valor entero capturado es mayor que max_available_metadata, Django devolverá un error 404.

    Para configurar el límite de max_available_metadata, puede definir una configuración en su archivo de configuración de Django y usarlo en sus patrones de URL. Por ejemplo:

    # settings.py
    MAX_AVAILABLE_METADATA = 25
    
    # urls.py
    from django.conf import settings
    from django.urls import path
    
    urlpatterns = [
        path(f'metadata/type1_<int:pk>/', views.type1_detail, name='type1_detail'),
        path(f'metadata/type2_<int:pk>/', views.type2_detail, name='type2_detail'),
    ]
    
    if settings.MAX_AVAILABLE_METADATA < 10000:
        urlpatterns.append(path(f'metadata/type1_{settings.MAX_AVAILABLE_METADATA+1}-10000/', views.not_found))
        urlpatterns.append(path(f'metadata/type2_{settings.MAX_AVAILABLE_METADATA+1}-10000/', views.not_found))
    

    Aquí, la configuración MAX_AVAILABLE_METADATA se utiliza para limitar los patrones de URL hasta el valor especificado. Si el valor es inferior a 10,000, entonces se agregan dos patrones de URL adicionales al URLconf que coinciden con cualquier URL que exceda el límite, lo que devolverá un error 404.

    Tenga en cuenta que este es solo un ejemplo básico y es posible que necesite modificarlo para que se ajuste a sus requisitos específicos. Además, mencionó que desea configurar esto a través del administrador de Django, pero eso no es parte de la pregunta, por lo que no lo incluí en mi respuesta.

Comments are closed.