Tengo una aplicación django a la que me gustaría agregar algunas interfaces de descanso. He visto http://code.google.com/p/django-rest-interface/ pero parece ser bastante simple. Por ejemplo, no parece tener una forma de aplicar la seguridad. ¿Cómo voy a limitar lo que las personas pueden ver y manipular a través de la interfaz de reposo? Normalmente pondría este tipo de lógica en mis puntos de vista. ¿Es este el lugar correcto o debería mover un poco más de lógica al modelo? Alternativamente, ¿hay una mejor biblioteca por ahí o necesito hacer mi propia?Usando django-rest-interface
Respuesta
Me gustaría ver en el uso de Django-pistón http://bitbucket.org/jespern/django-piston/wiki/Home aplicación si la seguridad es su principal preocupación.
He usado django-rest-interface en el pasado, es confiable y aunque simple puede ser bastante potente, sin embargo django-piston parece ser más flexible en el futuro.
Bueno, por el aspecto de las cosas, hay un parámetro authentication
en . (vea este ejemplo: authentication.py)
En segundo lugar, (incluso si Django aún no lo tiene), probablemente exista un middleware que verifique el formulario CSRF/XSRF. (Oh, parece que be one.) También debería poder usar el login_required
and permission_required
decorators en urls.py.
Incluso con el parámetro Autenticación, no tiene un control preciso sobre lo que las personas pueden hacer. La implementación actual de la interfaz Django-REST no rastrea la información del usuario, por lo que no tiene esta información disponible para realizar comprobaciones de autorización detalladas.
Ver Issue #32.
Sin embargo, es relativamente fácil de ampliar para agregar algunas características. Uso muchas subclases para agregar funciones.
Sin embargo, actualizar la solicitud con la información de inicio de sesión es complicado en Django. En lugar de hacer eso, dejo la información en la Colección.
En este momento, calculo que entre parches y subclases, lo que he escrito es casi tan grande como tener mis propias funciones de vista RESTful.
Django-REST, sin embargo, maneja con gracia y pulcritud HTTP Digest Authentication. No tengo ganas de reemplazar el suyo con algún tipo de decorador para mis funciones de visualización de Django.
[Tal vez deberíamos abrir un proyecto de Source Forge y elaborar un reemplazo limpia?]
Por favor, eche un vistazo a django-rest-framework, acabo de pasar de tastypie a este nuevo marco, ¡funciona genial!
http://django-rest-framework.org/
Especialmente los puntos de vista basados clase y la API navegable! y muchas otras ventajas (por ejemplo, subir imágenes)
- 1. ImportError usando nose, no ImportError usando rawtesttest?
- 2. Analizando CSV usando OleDb usando C#
- 3. Usando nombres para discriminar instancias usando IoC
- 4. usando DirectoryWalker
- 5. Usando TabWidget.setDividerDrawable()?
- 6. Usando OpenXmlReader
- 7. Usando GetKeyState()
- 8. Usando PropertyInfo.GetValue()
- 9. Usando django.db.connection.queries
- 10. Usando RAMDirectory
- 11. Usando scala.util.control.Exception
- 12. usando mysql_close()
- 13. Usando System.Random
- 14. Usando ResourceManager
- 15. usando javascript
- 16. cadena usando "*"
- 17. Usando IIterable
- 18. Captura de micrófonos usando Html 5 y difusión usando socket.io
- 19. Decodifica audio usando libavcodec y juega usando libAO?
- 20. hibernate usando anotaciones o usando archivos de configuración de hibernación
- 21. ¿Cómo dividir usando un carácter de prefijo usando expresiones regulares?
- 22. Copiar varios archivos usando comodines/recursivamente usando Wix
- 23. crear un diccionario usando 2 listas usando LINQ
- 24. Autenticación usando LDAP contra ADAM usando seguridad de primavera
- 25. Llamando al teléfono sms api usando phonegap usando javascript
- 26. Cómo construir un softphone (usando el protocolo SIP) usando C#
- 27. cómo cerrar sesión en LinkedIn usando authrequest usando android?
- 28. Usando SQL, ¿cómo actualizo las filas, usando sus propios valores?
- 29. Usando el código C de C++ usando autotools
- 30. Capturar fotos usando la cámara web usando Actionscript
código de google parece ser el alojamiento preferido para aplicaciones django reutilizables (no estoy seguro de por qué) – Jiaaro
@ S.Lott: sugirió un proyecto de sourceforge; Creo que @Jim Robert sugirió utilizar Google Code en su lugar, ya que parece ser la solución de alojamiento dominante para las aplicaciones de Django en general, sin comentar el nivel de control de seguridad en sí. –
@Hank Gay: Gracias. Probablemente se prefiera el código de Google porque Google ha hecho un gran compromiso con Python. –