openeuler-ci-bot 4c012cf088
!29 [sync] PR-24: Fix CVE-2024-36039
From: @openeuler-sync-bot 
Reviewed-by: @cherry530 
Signed-off-by: @cherry530
2024-06-06 09:19:38 +00:00
2024-05-24 10:32:55 +08:00
2024-05-24 10:32:55 +08:00
2020-05-08 10:23:44 +08:00
2020-02-14 17:29:59 +08:00

PyMySQL

.. contents:: Table of Contents :local:

This package contains a pure-Python MySQL client library, based on PEP 249_.

Most public APIs are compatible with mysqlclient and MySQLdb.

NOTE: PyMySQL doesn't support low level APIs _mysql provides like data_seek, store_result, and use_result. You should use high level APIs defined in PEP 249. But some APIs like autocommit and ping are supported because PEP 249 doesn't cover their usecase.

.. _PEP 249: https://www.python.org/dev/peps/pep-0249/

Requirements

  • Python -- one of the following:

    • CPython_ : 2.7 and >= 3.4
    • PyPy_ : Latest version
  • MySQL Server -- one of the following:

    • MySQL_ >= 5.5
    • MariaDB_ >= 5.5

.. _CPython: https://www.python.org/ .. _PyPy: https://pypy.org/ .. _MySQL: https://www.mysql.com/ .. _MariaDB: https://mariadb.org/

Installation

Package is uploaded on PyPI <https://pypi.org/project/PyMySQL>_.

You can install it with pip::

$ pip3 install PyMySQL

Documentation

Documentation is available online: https://pymysql.readthedocs.io/

For support, please refer to the StackOverflow <https://stackoverflow.com/questions/tagged/pymysql>_.

Example

The following examples make use of a simple table

.. code:: sql

CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, email varchar(255) COLLATE utf8_bin NOT NULL, password varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

.. code:: python

import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

    # connection is not autocommit by default. So you must commit to save
    # your changes.
    connection.commit()

    with connection.cursor() as cursor:
        # Read a single record
        sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
        cursor.execute(sql, ('webmaster@python.org',))
        result = cursor.fetchone()
        print(result)
finally:
    connection.close()

This example will print:

.. code:: python

{'password': 'very-secret', 'id': 1}

Resources

License

PyMySQL is released under the MIT License. See LICENSE for more information.

Description
No description provided
Readme 331 KiB
Languages
Diff 100%