Skip to main content

An ORM for MySql.

Project description

MySql ORM

A simple Object Relational Mapper for MySql. Works with existing tables and the schema of the tables are automatically inferred.

Install

pip install orm-mysql

Connect to MySql

from orm import Table

Table.connect(config_dict={
    'host': '<host_here>',
    'port': 3306,
    'user': '<user>',
    'password': '<password>',
    'database': '<database>'
})

Create a class for a table

Create a class that inherits from Table. Initialize the class variable table_name with the name of the table, here 'student'

from orm import Table
Table.connect(config_dict=CONFIG)

class Student(Table):
    table_name = 'student'

OR use get_table()

from orm import Table, get_table
Table.connect(config_dict=CONFIG)

Student = get_table('student')

Insert data

Using save()

new_student = Student(name='hrushi', age=19, gender='M')
new_student.age = 20
new_student.save()

Using create()

new_student = Student.create(name='hrushi', age=19, gender='M')

Query data

Using where()

students = Student.where(age=19, gender='F')

for stu in students:
    print(stu.name)

Using find()

Find a single record based on PRIMARY KEY.

# find student where id(PK) = 2
student = Student.find(2)

print(student.name)

Delete a record

student = Student.find(2)
student.destroy()

Relations

has_many and belongs_to can be used to show relationships between tables.

from orm import Table, has_many, belongs_to

class Article(Table):
    table_name = 'articles'

    relations = [
        belongs_to(name='author', _class='Author', foreign_key='author_id', primary_key='id')
    ]

class Author(Table):
    table_name = 'authors'

    relations = [
        has_many(name='articles', _class='Article', foreign_key='author_id')
    ]

Get all the books written a Author

auth = Author.find(2)
articles = auth.articles()
for art in articles:
    print(art.title)

Get Author of a book

art = Article.find(5)
author = art.author()
print(author.name)

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

orm-mysql-1.0.6.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

orm_mysql-1.0.6-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file orm-mysql-1.0.6.tar.gz.

File metadata

  • Download URL: orm-mysql-1.0.6.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for orm-mysql-1.0.6.tar.gz
Algorithm Hash digest
SHA256 81d3f7bf14db91b209ea715a47403d92d7801aa0f5809f43063aba4ea510c73e
MD5 55dde89c2dd3228b2ab15e438da8ac60
BLAKE2b-256 610602d035f5e876ee6a3b40e5ee9acccbef0de1add2c232d8b2289c3a06a9d9

See more details on using hashes here.

File details

Details for the file orm_mysql-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: orm_mysql-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for orm_mysql-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 26d05cf003346b6f18724da19a29e27ef6d328a28d5d6087ec1204c1c2893999
MD5 a15baa9abeab313e10acd2aa46cf7f29
BLAKE2b-256 e2e0204c5cec1e4f3239445b98f28c001b8eb3336aee0064f9629151562778ba

See more details on using hashes here.

Supported by

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