para insertar datos conectar con python mysql django debian

python - insertar - Configurando Django para usar MySQL



mysql-connector-python (9)

Quiero alejarme un poco de PHP y aprender Python. Para hacer un desarrollo web con Python necesitaré un marco para ayudar con la creación de plantillas y otras cosas.

Tengo un servidor que no es de producción y que uso para probar todo el desarrollo web. Es una pila Debian 7.1 LAMP que ejecuta MariaDB en lugar del paquete común del servidor MySQL.

Ayer instalé Django y creé mi primer proyecto llamado firstweb . No he cambiado ninguna configuración todavía.

Aquí está mi primera gran confusión. En el tutorial seguí al tipo que instaló Django, comenzó su primer proyecto, reinició Apache y Django solo trabajó desde entonces. Fue a su navegador y fue a la página predeterminada de Django sin problemas.

Sin embargo, tengo que hacer un cd en mi carpeta firstweb y ejecutar

python manage.py runserver myip:port

Y funciona. No hay problema. Pero me pregunto si se supone que debe funcionar así, y si esto causará problemas en el futuro.

Mi segunda pregunta es que quiero configurarlo para que use mi base de datos MySQL. Voy a mi settings.py en / firstweb / firstweb y veo ENGINE y NAME, pero no estoy seguro de qué poner aquí.

Y luego en las áreas USUARIO, CONTRASEÑA y HOST, ¿esta es mi base de datos y sus credenciales? Si estoy usando localhost, ¿puedo poner localhost en el área HOST?


Como se dijo anteriormente, puede instalar xampp primero desde https://www.apachefriends.org/download.html Luego siga las instrucciones como:

  1. Instale y ejecute xampp desde http://www.unixmen.com/install-xampp-stack-ubuntu-14-04/ , luego inicie Apache Web Server y MySQL Database desde la GUI.
  2. Puede configurar su servidor web como lo desee, pero de forma predeterminada el servidor web se encuentra en http://localhost:80 y la base de datos en el port 3306 , y PhpMyadmin en http://localhost/phpmyadmin/
  3. Desde aquí puede ver sus bases de datos y acceder a ellas utilizando una GUI muy amigable.
  4. Crea cualquier base de datos que quieras usar en tu proyecto Django.
  5. Edite su archivo settings.py como:

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

  6. Instale los siguientes paquetes en el virtualenv (si está usando django en virtualenv, que es más preferido):

    sudo apt-get install libmysqlclient-dev

    pip instala MySQL-python

  7. ¡¡Eso es!! usted ha configurado Django con MySQL de una manera muy fácil.

  8. Ahora ejecuta tu proyecto Django:

    python manage.py migrate

    python manage.py runserver


En realidad, hay muchos problemas con diferentes entornos, versiones de Python, etc. Es posible que también necesites instalar los archivos de desarrollo de Python, por lo que para ''aplicar fuerza bruta'' a la instalación ejecutaría todos estos:

sudo apt-get install python-dev python3-dev sudo apt-get install libmysqlclient-dev pip install MySQL-python pip install pymysql pip install mysqlclient

Deberías ser bueno para ir con la respuesta aceptada. Y puede eliminar los paquetes innecesarios si eso es importante para usted.


La respuesta de Andy ayuda, pero si le preocupa exponer la contraseña de su base de datos en su configuración django, le sugiero que siga la configuración oficial de django en la conexión de mysql: https://docs.djangoproject.com/en/1.7/ref/databases/

Citado aquí como:

# settings.py DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''OPTIONS'': { ''read_default_file'': ''/path/to/my.cnf'', }, } } # my.cnf [client] database = NAME user = USER password = PASSWORD default-character-set = utf8

Para reemplazar ''HOST'': ''127.0.0.1'' en la configuración, simplemente agrégalo en my.cnf:

# my.cnf [client] database = NAME host = HOST NAME or IP user = USER password = PASSWORD default-character-set = utf8

Otra OPCIÓN que es útil, es configurar su motor de almacenamiento para django, es posible que desee en su setting.py:

''OPTIONS'': { ''init_command'': ''SET storage_engine=INNODB'', }


Para el primero, ejecute los siguientes comandos para instalar las dependencias de Python; de lo contrario, el comando python runserver emitirá un error.

sudo apt-get install libmysqlclient-dev sudo pip install MySQL-python

A continuación, configure el archivo settings.py como se define por #Andy y en la última ejecución:

python manage.py runserver

Que te diviertas..!!


Primero debe crear una base de datos MySQL. A continuación, vaya al archivo settings.py y edite el diccionario ''DATABASES'' con sus credenciales de MySQL:

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''NAME'': ''YOUR_DATABASE_NAME'', ''USER'': ''YOUR_MYSQL_USER'', ''PASSWORD'': ''YOUR_MYSQL_PASS'', ''HOST'': ''localhost'', # Or an IP that your DB is hosted on ''PORT'': ''3306'', } }

Aquí hay una guía de instalación completa para configurar Django para usar MySQL en un virtualenv:

http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/


Si está utilizando python3.x, ejecute el comando debajo de

pip install mysqlclient

Luego cambie setting.py como

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''NAME'': ''DB'', ''USER'': ''username'', ''PASSWORD'': ''passwd'', } }


settings.py

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''NAME'': ''django'', ''USER'': ''root'', ''PASSWORD'': ''*****'', ''HOST'': ''***.***.***.***'', ''PORT'': ''3306'', ''OPTIONS'': { ''autocommit'': True, }, }

}

entonces:

python manage.py migrate

si el éxito generará estas tablas:

auth_group auth_group_permissions auth_permission auth_user auth_user_groups auth_user_user_permissions django_admin_log django_content_type django_migrations django_session

y usted puede usar mysql.

este es un ejemplo de presentación, prueba en Django versión 1.11.5: Django-pool-showcase


El soporte de MySQL es simple de agregar. En su diccionario de DATABASES , tendrá una entrada como esta:

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''NAME'': ''DB_NAME'', ''USER'': ''DB_USER'', ''PASSWORD'': ''DB_PASSWORD'', ''HOST'': ''localhost'', # Or an IP Address that your DB is hosted on ''PORT'': ''3306'', } }

También tiene la opción de utilizar archivos de opciones de MySQL, a partir de Django 1.7. Puede lograr esto configurando su matriz DATABASES manera:

DATABASES = { ''default'': { ''ENGINE'': ''django.db.backends.mysql'', ''OPTIONS'': { ''read_default_file'': ''/path/to/my.cnf'', }, } }

También necesita crear el archivo /path/to/my.cnf con configuraciones similares desde arriba

[client] database = DB_NAME host = localhost user = DB_USER password = DB_PASSWORD default-character-set = utf8

Con este nuevo método de conexión en Django 1.7, es importante saber las conexiones de pedido establecidas:

1. OPTIONS. 2. NAME, USER, PASSWORD, HOST, PORT 3. MySQL option files.

En otras palabras, si configura el nombre de la base de datos en OPCIONES, tendrá prioridad sobre NAME, lo que anularía cualquier cosa en un archivo de opción de MySQL.

Si solo está probando su aplicación en su máquina local, puede usar

python manage.py runserver

Al agregar el argumento ip:port máquinas que no sean las suyas pueden acceder a su aplicación de desarrollo. Una vez que esté listo para implementar su aplicación, le recomiendo echar un vistazo al capítulo sobre Implementación de Django en el djangobook

El conjunto de caracteres predeterminado de Mysql a menudo no es utf-8, por lo tanto, asegúrese de crear su base de datos usando este sql:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

Si está utilizando el conector MySQL de Oracle, su línea ENGINE debería verse así:

''ENGINE'': ''mysql.connector.django'',


Ejecuta estos comandos

sudo apt-get install python-dev python3-dev

sudo apt-get install libmysqlclient-dev

pip instala MySQL-python

pip install pymysql

pip install mysqlclient

A continuación, configure settings.py como

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

Disfruta la conexión mysql