Skip to main content

easy calls to mysql databases

Project description

A lightweight and dynamic wrapper around mysql.connector to simplify MySQL database interactions with schema-driven table creation, automatic connection handling, and Python object mapping.


pip install mysql-database

📁 Project Structure

Your project must include a schemas/ folder (or custom path) containing JSON schema files for each database.

Example:

schemas/
└── mydatabase.json

in this case the database name will be 'mydatabase'

Each file should follow this format:

{
  "users": {
    "name": "VARCHAR(255)",
    "email": "VARCHAR(255)",
    "active": "BOOLEAN"
  },
  
  "products": {
    "title": "VARCHAR(255)",
    "price": "FLOAT",
    "users_id": "INT"
  }
}

to use FOREIGN KEY create an INT column <foreign_table>_id: for example in the schema above users_id will be assosiated with the table users

🚀 Usage Example

from mysql_database import Database, DatabaseCreds

# Define credentials
creds = DatabaseCreds(
    host="localhost",
    user="root",
    password="yourpassword",
    port=3306
)

# Initialize database (auto-creates DB and tables if they don't exist)
db = Database(name="mydatabase", creds=creds)

# Add object
user_id = db.add_object("users", {
    "name": "Alice",
    "email": "alice@example.com",
    "active": True
})

# Get list of user objects
users = db.get_list_of_objects("users")

# Get user by ID
user = db.get_object_by_id("users", user_id)

# Update user
db.update_object("users", user_id, {"active": False})

# Delete user
db.delete_object("users", user_id)

🔍 Advanced Usage

Get filtered list of objects:

db.get_filtered_list_of_objects(
    object_type="users",
    filter="alice",
    include_columns=['name', 'email']
    as_dict=True
)

📄 License

MIT License. See LICENSE file for details.


---

Let me know if you'd like to add badges (PyPI version, license, etc.) to the top of the README.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mysql_database-0.1.8.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mysql_database-0.1.8-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file mysql_database-0.1.8.tar.gz.

File metadata

  • Download URL: mysql_database-0.1.8.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for mysql_database-0.1.8.tar.gz
Algorithm Hash digest
SHA256 af1d9ad88a6054fd4df54a1c9d3527deedbff939db71d177c2d0d018c89b4a34
MD5 b1f192dedda00946fc140595526c8965
BLAKE2b-256 45544154a7c9f093c3d41b0d6a358dd2b7960aafd50a287e21a65b27ac40aeb3

See more details on using hashes here.

File details

Details for the file mysql_database-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: mysql_database-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for mysql_database-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 144f2b9e432f75fa3ecea914fcd0bb2c9a97d17228a16907272ecef53a337acb
MD5 2e27a3cf13bfeedb850d778616695758
BLAKE2b-256 6a0489efcc7bde9e56785c19386c9aa1ef3377930b2ffed13d6fbd7d6785431f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page