Skip to main content

A Python package for building dynamic MySQL-powered web applications with template support

Project description

PyAwaish

PyAwaish is a Flask-based Python framework that simplifies the development of MySQL-powered web applications. It provides a streamlined interface for connecting to a MySQL database, rendering templates, and executing queries dynamically via RESTful APIs.

Features

  • Dynamic MySQL Configuration: Configure MySQL database settings at runtime via a web interface.

  • Template Rendering: Built-in support for rendering templates stored in the templates folder.

  • Query Execution API: Execute MySQL queries dynamically through POST requests.

  • CRUD Operations: Perform create, read, update, and delete operations programmatically.

  • RESTful Design: Leverage Flask to expose endpoints for database interactions.

  • Environment Configuration: Load sensitive credentials securely using environment variables.

Badges

https://badge.fury.io/py/PyAwaish.svg https://img.shields.io/badge/License-MIT-yellow.svg

Endpoints

  1. `/`: Displays the MySQL configuration page.

  2. `/home`: Displays the home page.

  3. `/config_mysql`: Accepts a POST request to configure MySQL connection details dynamically.

  4. `/execute_query`: Accepts a POST request to execute MySQL queries or perform operations (e.g., insert, delete, update).

Installation

  1. Clone the repository:

    git clone https://github.com/abuawaish/CRUD_App.git
    cd CRUD_App
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Install the package:

    pip install PyAwaish
  4. Set environment variables for database configuration:

    export MYSQL_HOST=localhost
    export MYSQL_USER=root
    export MYSQL_PASSWORD=your password
    export MYSQL_DB=mydatabase
    export SECRET_KEY=your_secret_key

Usage

Running the Application

To start the MysqlWebApp server, instantiate the MysqlApplication class and call its execute method. For example:

from PyAwaish.MysqlApplication import MysqlApplication

if __name__ == "__main__":
    app = MysqlApplication()
    app.execute()

This will:

  • Start a Flask server on http://0.0.0.0:5001.

  • Serve endpoints for configuring and interacting with the MySQL database.

Configuring MySQL

  1. Navigate to the root endpoint (http://localhost:5001/) to access the configuration page.

  2. Enter the database details (host, username, password, database name) and click “Save”.

  3. Upon successful configuration, you will be redirected to the home page.

Executing Queries

Use the /execute_query endpoint to run SQL queries or perform operations. Example request:

  • POST Request Example:

    {
        "operation": "insert",
        "table_name": "users",
        "columns": "name, email",
        "values": "'John Doe', 'john@example.com'"
    }
  • Supported Operations: - insert: Insert data into a table. - delete: Delete data from a table with a condition. - update: Update data in a table with a condition. - fetch_data: Fetch all data from a table. - show_tables: List all tables in the database.

Dependencies

The application requires the following dependencies (listed in requirements.txt):

  • Flask: Web framework.

  • Flask-MySQLdb: MySQL connector for Flask.

To install them, run:

pip install -r requirements.txt

Environment Variables

  • MYSQL_HOST: MySQL server hostname (default: localhost).

  • MYSQL_USER: MySQL username (default: root).

  • MYSQL_PASSWORD: MySQL password.

  • MYSQL_DB: Default MySQL database name.

  • SECRET_KEY: Flask secret key for session security.

Changelog

Refer to CHANGELOG.txt for the complete version history of the project.

License

This project is licensed under the MIT License. See LICENSE.txt for full details.

Contact

For questions or feedback, contact:

CHANGELOG

Version 1.0 (2025-01-27)

  • Initial release of PyAwaish.

  • Added dynamic MySQL configuration through a web interface.

  • Implemented template rendering for config_mysql.html and home.html.

  • Developed /execute_query endpoint for executing MySQL queries.

  • Supported CRUD operations: insert, delete, update, fetch_data.

  • Enabled secure database connection using environment variables.

  • Provided RESTFul API design for interaction with MySQL.

  • Fixed the code markdown in readme.rst file

  • Added warning messages

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

pyawaish-1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

PyAwaish-1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file pyawaish-1.0.tar.gz.

File metadata

  • Download URL: pyawaish-1.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for pyawaish-1.0.tar.gz
Algorithm Hash digest
SHA256 e7bc64256cb76cc03b76e0e4d13f54464101528230cf667044e41830aad8aaf8
MD5 ee9831042bbfe108e12864c944768e63
BLAKE2b-256 70ce06f2381a91d2582bd1048bd04e2ae49c6acab1e12ce672ffc2c8a6a8e4aa

See more details on using hashes here.

File details

Details for the file PyAwaish-1.0-py3-none-any.whl.

File metadata

  • Download URL: PyAwaish-1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for PyAwaish-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ae06a9502933434e54d1b2ff0169631644046e376a839e97fb200900dac7d92f
MD5 96cdc490d5803746d21afb485822327d
BLAKE2b-256 26bc462268becac5c6243316f4a59c002682551c3de2e828f856e652700aea93

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