urls tutorial template examples desde cero python django

python - tutorial - Use solo algunas partes de Django?



django urls (8)

Creé una plantilla del proyecto Django que te permite hacer eso.

https://github.com/dancaron/Django-ORM

Simplemente siga las instrucciones y podrá escribir archivos python independientes que utilicen la funcionalidad de base de datos de Django, sin tener que usar urlconf, vistas, etc.

Me gusta Django, pero para una aplicación en particular me gustaría utilizar solo algunas partes, pero no estoy lo suficientemente familiarizado con cómo funciona Django en el interior, por lo que tal vez alguien me puede orientar en la dirección correcta en cuanto a lo que tengo que revisa.

Específicamente, quiero usar :

  • Los modelos y la abstracción de la base de datos
  • La API de almacenamiento en caché , aunque quiero evitar las búsquedas de bases de datos mediante el almacenamiento en caché, no la generación de HTML, y dado que el marco de almacenamiento en caché en Django está destinado a este último, no estoy seguro aún si es realmente apropiado.

No usaría :

  • Templating
  • urlconfigs

O, más exactamente, no estoy usando HTTP ni HTML. Entonces, básicamente, tengo una cadena de entrada / salida diferente a la habitual.

¿Puede esto funcionar?

Mi característica personal asesina en Django es el mapeo Objeto / base de datos que puedo hacer con los modelos, así que si hay otra tecnología (no tiene que ser Python, estoy en la fase de diseño y soy bastante agnóstico sobre los idiomas y plataformas) que me da las mismas habilidades, eso también sería genial.


Django, al ser un framework web, es extremadamente eficiente en la creación de sitios web. Sin embargo, también es adecuado para resolver problemas de la web. Este es el acoplamiento flexible del que el proyecto se enorgullece. Nada le impide instalar una versión completa de Django y solo usar lo que necesita. Como regla, muy pocos componentes de Django hacen suposiciones generales sobre su uso.

Específicamente:

Una de las cosas principales que enfrentará al intentar usar Django sin un servidor web es configurar el entorno correctamente. El ORM y el sistema de caché aún deben configurarse en settings.py. Hay documentos sobre el docs.djangoproject.com/en/dev/topics/settings/… que puede serle útil.


Encontré la respuesta de KeyboardInterrupt pero fue respondida en 2009 y no pude ejecutarla en Django 1.8. Para el reciente Django 1.8 , puedes echarle un vistazo a esto, en el que algunas partes provienen de la respuesta de KeyboardInterrupt.

La estructura de la carpeta es:

. ├── myApp │   ├── __init__.py │   └── models.py └── my_manage.py

myApp es un módulo, contiene un __init__.py vacío y models.py .

Hay un ejemplo de clase de modelo en models.py : de los modelos de importación django.db

class MyModel(models.Model): field = models.CharField(max_length=255)

my_manage.py contiene la base de datos django, la configuración de installed_app y actúa como django offical manage.py, por lo que puedes:

python my_manage.py sql myApp python my_manage.py migrate ......

Los códigos en my_manage.py son: desde la configuración de importación django.conf

db_conf = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''NAME'': ''your_database_name'', ''USER'': ''your_user_name'', ''PASSWORD'': ''your_password'', ''HOST'': ''your_mysql_server_host'', ''PORT'': ''your_mysql_server_port'', } } settings.configure( DATABASES = db_conf, INSTALLED_APPS = ( "myApp", ) ) # Calling django.setup() is required for “standalone” Django u usage # https://docs.djangoproject.com/en/1.8/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage import django django.setup() if __name__ == ''__main__'': import sys from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)


He compartido un ejemplo de solución que evita la manipulación de la ruta de Python dentro del código:

https://github.com/askalyuk/django-orm-standalone

Contiene un paquete de acceso a datos independiente, un sitio Django simple separado y una prueba unitaria.


Para utilizar los modelos de Django y la abstracción de la base de datos , explico una forma limpia de usarlos fuera de Django aquí: https://.com/a/49515366/2682613

Django versión 2.0.2


Por supuesto, existen otros proyectos que implementan específicamente partes individuales de django. TurboGears por ejemplo, es una colección de varios proyectos que pueden funcionar solos y que juntos forman un marco completo de desarrollo web.

Para la abstracción db sqlalchemy viene a la mente.

En cuanto a la parte de almacenamiento en caché: no conozco ningún proyecto independiente que implemente una instalación de almacenamiento en caché genérico.

Por otro lado, debería ser bastante fácil implementar su propio almacenamiento en caché, por ejemplo, usando pickles . Echa un vistazo a esta receta para un decorador de ideas y google para "memorizar".

También tenga en cuenta que su base de datos tiene su propio mecanismo de almacenamiento en caché, por lo que tal vez ni siquiera necesite preocuparse por los detalles.


Tiendo a preferir un enfoque de mezclar y combinar para usar Python para la programación web. :-)

No tengo mucha experiencia con Django, pero recomendaría echarle un vistazo a sqlalchemy . Funciona bien con otros y le ofrece varias capas de abstracción potenciales (para que pueda ir con algo básico o retocarlo si lo desea). Además, ya estarás familiarizado con él si alguna vez has usado hibernate / nhibernate.

Mi parte favorita es que tiene muchas opciones para conectarse a bases de datos (el más notable es SQL Server, que django no tiene incorporado la última vez que lo comprobé).

Dicho esto, me dijeron que con Django, es bastante fácil desacoplar la funcionalidad (pero nunca lo hice yo).


Yo mismo uso Django para su mapeo object / db sin usar sus urlconfigs. Simplemente cree un archivo llamado djangosettings.py e inserte la configuración necesaria, por ejemplo:

DATABASE_ENGINE = ''oracle'' DATABASE_HOST = ''localhost'' DATABASE_NAME = ''ORCL'' DATABASE_USER = ''scott'' DATABASE_PASSWORD = ''tiger''

Luego, en tu código Python normal, hazlo

import os os.environ["DJANGO_SETTINGS_MODULE"] = "djangosettings"

antes de importar cualquier módulo de Django. Esto le permitirá usar las asignaciones de objeto / db de Django sin tener realmente un proyecto Django, por lo que puede usarlo para scripts independientes u otras aplicaciones web o lo que quiera.

En cuanto al almacenamiento en caché, si no quieres usar Django, probablemente deberías decidir qué estás usando e ir desde allí. Recomiendo usar CherryPy, que no utiliza el mapeo de URL de expresión regular de estilo Django, sino que mapea automáticamente las URL a funciones basadas en los nombres de las funciones. Hay un ejemplo justo en la parte superior de la página de inicio de CherryPy: http://cherrypy.org/

CherryPy tiene su propio sistema de almacenamiento en caché, por lo que puedes lograr exactamente lo mismo que Django, pero sin necesidad de utilizar el sistema urlconfig de Django.