Django learning-6th lecture (on): operación del método nativo de la base de datos Django

1. Instalación del controlador MySql

Usamos Django para operar MySQL, de hecho, la operación subyacente todavía es a través de Python. Por lo tanto, si queremos usar Django para operar MySQL, todavía necesitamos instalar un controlador primero. En Python3, hay varias opciones para los controladores. Por ejemplo, existen pymysql y mysqlclient. Aquí usamos mysqlclient para operar. La instalación de mysqlclient es muy sencilla. Solo necesitas pip install mysqlclientinstalar. Si la instalación falla, podemos ir al sitio web de la biblioteca de Python sin conexión para encontrar la versión correspondiente que necesitamos, descargarla y luego instalarla con pip.

URL del paquete de instalación sin conexión:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
Si no puede pip directamente, puede encontrar el paquete correspondiente en este sitio web.

Nota: la versión de mysql requerida por Django es 5.7, ORM no se puede usar si es menor que 5.7

Introducción a los controladores habituales de MySQL:

    1. MySQL-python: Eso es MySQLdb. Es un paquete simple para la operación de la base de datos MySQL en lenguaje C. Sigue la API de Python DB v2
      pero solo es compatible con Python2, y actualmente no es compatible con Python3.
  • 2 mysqlclient.: Es otra rama de MySQL-python. Admite Python3 y corrige algunos errores.
  • 3 pymysql.: Un controlador implementado en Python puro. Debido a que está escrito en Python puro, la eficiencia de ejecución no es tan buena como MySQL-python. Y debido a que está escrito en Python puro, se puede conectar sin problemas con el código Python.
  • 4 MySQL Connector/Python.: MySQL lanzó oficialmente el controlador que usa Python puro para conectarse a MySQL. Porque está desarrollado en Python puro. baja eficiencia.

2. Configuración de Django para conectarse a la base de datos

Antes de operar la base de datos, primero debe conectarse a la base de datos. Aquí tomamos la configuración de MySQL como ejemplo para explicar. Django se conecta a la base de datos sin crear un objeto de conexión separado. Simplemente realice la configuración relacionada con la base de datos en el archivo settings.py.

DATABASES = {
    'default': {
        # 数据库引擎(是mysql还是oracle等)
        'ENGINE': 'django.db.backends.mysql',
        # 数据库的名字
        'NAME': 'logic',
        # 连接mysql数据库的用户名
        'USER': 'root',
        # 连接mysql数据库的密码
        'PASSWORD': 'root',
        # mysql数据库的主机地址
        'HOST': '127.0.0.1',
        # mysql数据库的端口号
        'PORT': '3306',
    }
}

连接Linux服务器MySQL问题:https://blog.csdn.net/qq473179304/article/details/56665364

3. Manipular la base de datos en Django

  • Hay dos formas de manipular la base de datos en Django. La primera forma es utilizar operaciones de declaración SQL nativas y la segunda forma es utilizar modelos ORM para operar.

  • El uso de operaciones de declaración SQL nativas en Django es en realidad usar la interfaz de la API de Python DB para operar. Si su controlador mysql usa pymysql, entonces usa pymysql para operar, pero Django encapsula esta parte de la conexión de la base de datos. Solo necesitamos configurar la información de conexión de la base de datos en settings.py y usar Django directamente. Se puede operar una buena interfaz, introduzca la conexión en django

# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息
from django.db import connection

# 获取游标对象
cursor = connection.cursor()
# 拿到游标对象后执行sql语句
cursor.execute("select * from book")
# 获取所有的数据
rows = cursor.fetchall()
# 遍历查询到的数据
for row in rows:
    print(row)

Los métodos de ejecución y recuperación anteriores se definen en la especificación de la API de Python DB. Cualquier controlador que use Python para operar MySQL debe seguir esta especificación. Entonces, ya sea que use pymysql o mysqlclient o mysqldb, sus interfaces son las mismas.

4. Interfaces comunes de objetos de cursor bajo la especificación Python DB API

    1. description: Si el cursor ejecutó el código SQL de la consulta. Luego, cuando se lea la propiedad cursor.description, se devolverá una lista. La lista se rellena con tuplas, que son (nombre, código_de_tipo, tamaño de visualización, tamaño_interno, precisión, escala, nulo_ok), donde nombre representa Es el nombre del campo de los datos encontrados, otros parámetros no son muy útiles temporalmente.
  • 2 rowcount.: Representa el número de filas afectadas después de que se ejecuta la instrucción sql.

  • 3 close.: Cierre el cursor. Después de cerrar el cursor, ya no se puede usar, de lo contrario se lanzará una excepción.

-4 execute(sql[,parameters]).: Ejecuta una sentencia sql. Si necesita pasar parámetros al ejecutar la instrucción sql, puede pasarlos al parámetro de parámetros. El código de muestra es el siguiente:

 cursor.execute("select * from article where id=%s",(1,))
    1. fetchone: Después de ejecutar la operación de consulta, obtenga el primer dato.
    1. fetchmany(size): Obtiene varios datos después de ejecutar la operación de consulta. El número específico depende del parámetro de tamaño pasado. Si no se pasa el parámetro de tamaño, el valor predeterminado es obtener los primeros datos.
  • 7 fetchall.: Obtenga todos los datos que cumplan con la declaración sql.

Supongo que te gusta

Origin blog.csdn.net/scyllake/article/details/109060484
Recomendado
Clasificación