¿Cómo conectar Django a una base de datos?

33/37

Lectura

Django obtiene la estructura, acceso y control de los datos de una aplicación a través de su ORM (Object Relational Mapper), esto significa que no importa qué motor de base de datos esté usando, el mismo código seguirá funcionando, configurar esto en un proyecto de Django es cuestión de segundos.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 18

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para mí este sería mi primer deploy de una app y como muchos tal vez se sienta perdido pero encontré oro en este enlace puedes encontrar el deploy de una app en AWS junto con Pablo Trinidad espero te sirva

Entonces se puede hacer el mismo CREATE (por ejemplo), a dos BD distintas?

Umm esto debió haber sido un videotutorial, la documentación es muy superficial, por ejemplo a mi me queda la duda, de si en mi entorno virtual quiero correr mi proyecto conectado con la base de datos postgres como lo hago, es necesario crear la base de datos antes o django la crea por mi? y no comenta nada del Psycopg2, se nota el afán de querer acabar rápido el curso

Existe alguna recomendación o estilo propuesto por Django para no tener Campos “SECRETOS” en el código? ya que tanto SECRET_KEY o los passwords de las bases de datos están “HardCodeados” además de que cuando estos se suban a Github estaría exponiendo mi sistema

¿No faltaría instalar la dependencia ‘psycopg2’?

Esta lectura debe de ser un tema para varias clases por ques muy importante en proyectos.
No solo debe de ser una lectura corta.

¿Se puede utilizar SQL en vez del ORM de Django? (Se tendría que especificar en setting .py, o solo colocar la consulta SQL en queryset)
Esto lo pregunto porque hace poco Freddy Vega comento que el uso de ORM’s puede causa mala optimización para el software.

Hola, como seria la configuracion para conectar a una BAse de datos Microsoft SQL Server?

esta es mi configuracion en settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "platzi",
        "USER": "root",
        "PASSWORD": "antoine",
        "HOST": "",
        "PORT": 3307,
    }
}```

±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| platzi |
| proyectofatz |
| sakila |
| sys |
| world |
±-------------------+```

django.db.utils.OperationalError: (1049, "Unknown database 'platzi'")```


No entiendo porque me dice error en el nombre de la base de datos 

Beuna tarde, alguien sabe como arreglar esto:

(venv) [email protected]:~/JS/django/platzigram-deployment/platzigram$ python3 manage.py migrate
Operations to perform:
Apply all migrations: account, admin, auth, contenttypes, posts, sessions, sites, socialaccount, users
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying account.0001_initial… OK
Applying account.0002_email_max_length… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying users.0001_initial… OK
Applying posts.0001_initial… OK
Applying posts.0002_user_is_admin…Traceback (most recent call last):
File “manage.py”, line 15, in <module>
execute_from_command_line(sys.argv)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/init.py”, line 381, in execute_from_command_line
utility.execute()
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/init.py”, line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/base.py”, line 316, in run_from_argv
self.execute(*args, **cmd_options)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/base.py”, line 353, in execute
output = self.handle(*args, **options)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/base.py”, line 83, in wrapped
res = handle_func(*args, **kwargs)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/core/management/commands/migrate.py”, line 201, in handle
post_migrate_state = executor.migrate(
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/db/migrations/executor.py”, line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/db/migrations/executor.py”, line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/db/migrations/executor.py”, line 244, in apply_migration
state = migration.apply(state, schema_editor)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/db/migrations/migration.py”, line 114, in apply
operation.state_forwards(self.app_label, project_state)
File “/home/dpeniafiel/JS/django/platzigram-deployment/platzigram/venv/lib/python3.8/site-packages/django/db/migrations/operations/fields.py”, line 70, in state_forwards
state.models[app_label, self.model_name_lower].fields.append((self.name, field))
KeyError: (‘posts’, ‘user’)

de acuerdo en que este tema se debio tratar como clase y no documentacion, pero bueno con cualquier otro lenguaje si tienes orden al programar y usas conceptos de clases , instanciar , heredar etc, tambien se puede usar el mismo codigo indiferentemente la bd.

el ORM encapsula todo el trabajo de hacer querys extensas. Ahorra bastante trabajo.

Confi con MySQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}```

tengo una duda, cómo podemos proteger las contraseñas si es que queremos subir un proyecto a github?. Me imagino usar algún tipo de documento externo que le pase las contraseñas y ponerlo en el gitignore, pero no se como se hace eso… agradecería los consejos y guías 😃

Perfecto!

Excelente, gracias

Consulta y si tengo tablas existente de las cuales quisiera sacar información para mostrar en la aplicación como se realizaría en django?