Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
Importar una clase en urls.py en Django

En las últimas semanas, pasé de desarrollar una aplicación que procesa un archivo XML simple, luego escribe su contenido en una base de datos Oracle ( cx_Oracle ) y genera salidas en HTML, a usar un marco Django. El cambio de marco Django no era necesario, pero como tengo la oportunidad de desarrollar algo usando Django, pensé por qué no, ya que es un área nueva para mí y no puede dañar mi CV.

De todos modos, tengo problemas para saber qué escribir en mi archivo urls.py al importar una Clase desde el archivo views.py . Estos son los contenidos actuales:

urls.py

 from myproj.views import Pymat_program pymatProgram = Pymat_program() urlpatterns = ( url(r'^pymat/$', pymatProgram.abc), )

vistas.py

 class Pymat_program: def abc(self, request): test = "<html><body>Random text.</body></html>" return HttpResponse(test)

Probé varias permutaciones de usar solicitud, no usar solicitud, y también cómo se llama a la clase en la tupla de URL, todo fue en vano. Cuando uso una definición fuera de la clase (es decir, no en ninguna clase), esto se muestra correctamente en HTML.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No desea envolver su programa en una clase. (En general, en Python debe tratar los módulos como, digamos, Java podría tratar las clases solo con miembros estáticos).

Hay dos enfoques, realmente:

Vistas basadas en funciones

urls.py

 from myproj.views import abc_view urlpatterns = ( url(r'^pymat/$', abc_view), )

vistas.py

 def abc_view(request): test = "<html><body>Random text.</body></html>" return HttpResponse(test)

Vistas basadas en clases

urls.py

 from myproj.views import AbcView urlpatterns = ( url(r'^pymat/$', AbcView.as_view()), )

vistas.py

 from django.views.generic import View class AbcView(View): def get(self, request, *args, **kwargs): test = "<html><body>Random text.</body></html>" return HttpResponse(test)
over 4 years ago · Santiago Trujillo Denunciar

0

Dado que está utilizando vistas basadas en clases en Django, debe llamar a esta clase en una URL como:

 from myproj.views import Pymat_program pymatProgram = Pymat_program() urlpatterns = ( url(r'^pymat/$', pymatProgram.as_view()), )

y luego use obtener o publicar el nombre de los métodos en la clase como:

 class Pymat_program: model = ModelName def post(self, request, *args, **kwargs): ....

La segunda forma es usar vistas basadas en funciones:

urls.py

 from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.view_name), ]

vistas.py

 from django.http import HttpResponse import datetime def view_name(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)

para obtener más detalles, consulte los documentos de vistas basadas en clases

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda