A simple mysql orm for python3
Project description
中文-Chinese
FlagBox - a simple mysql orm for python3
Functional overview
- Model-Oriented operations
- Basic CRUD
- Operator query
- Automatic safety escape
- Deadlock retry
Installing
shell>pip install flagbox
Basic
from flagbox import Mysql # Create a connection.Automatically create database(if it is not created) db = Mysql('localhost', 'root', 'your-password', 'testdb1') class Worker(db.Model): __table__ = 'worker' id = db.PrimaryKeyField() username = db.VarcharField(max_length=32, nullable=False, unique=True, default=None, comment="Worker's username") password = db.VarcharField(max_length=32, nullable=False, unique=False, default=None, comment="Worker's password") salary = db.FloatField(nullable=False, unique=False, default=0.0, comment="Worker's monthly salary") Worker.create_table() # Insert jack = Worker(username='Jack', password='JackSoHandsome', salary=3999.2) jack.insert() mary = Worker() mary.username = 'Mary' mary.password = 'MarySoBeautiful' mary.insert() # Get all and get the first all_workers = Worker.select().all() the_first_worker = Worker.select().first() # Query by operators rich_workers = Worker.select(Worker.salary>=3000.0).all() # Complex query by operators & and | worker_jack = Worker.select( ((Worker.username == 'jack') & (Worker.password == 'JackSoHandsome')) | (Worker.salary=='3999.2') ).first() # Order the rows the_richest_worker = Worker.select(orders=[-Worker.salary]).first() # Use the result for worker in all_workers: print('username:{} password:{} salary:{}'.format(worker.username, worker.password, worker.salary)) print('And the richest worker is {}'.format(the_richest_worker.username)) # Update one row worker_jack.salary = 3000.0 worker_jack.update() # Delete one row worker_jack.delete()
Else
Currently supported MySQL fields
FlagBox | Mysql |
---|---|
PrimaryKeyField | NO |
BooleanField | BOOLEAN |
IntField | INT |
BigIntField | BIGINT |
FloatField | FLOAT |
DoubleField | DOUBLE |
VarcharField | VARCHAR |
TextField | TEXT |
PrimaryKeyField must be defined as the primary key.A basic definition below
mydb = Mysql('localhost', 'root', 'your-passwd', 'your-database') class ModelName(mydb.Model): __table__ = 'mytable' id = mydb.PrimaryKeyField() # Other fields...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
FlagBox-0.21.tar.gz
(8.2 kB
view hashes)
Built Distribution
FlagBox-0.21-py3-none-any.whl
(8.0 kB
view hashes)