pip install sajilo-orm
- Connect Database
- Create Table
- QuerySet API
- Add Data
- Filter And Get Data
- Update Data
- Delete Data
- Check If Table Exists
- Types of Exception
Postgresql is the only supported Database for now(Feel free to contribute to add new database)
from sajilo_orm.manager import BaseManager
MY_DB_SETTINGS = {
"database": "db_name",
"user": "db_user",
"password": "db_password",
"host": "db_host", #localhost for local connection
"port": "5432",
}
BaseManager.DB_SETTINGS = MY_DB_SETTINGS
To create table , import DamiModel
from sajilo_orm.models
and use Column
class to define column along with datatype which is in Nepali
Note: id serial primary key
is added automatically when creating table
from sajilo_orm.models import DamiModel
from sajilo_orm.field import Column
class Country(DamiModel):
table_ko_naam = "country" # this will be the name of the table created in database
name = Column("string", max_length="50")
no_of_province = Column("anka") #number
new_year = Column("miti", default='2000-01-01') #date
today = Column("miti", default='aja_ko_date') #gives CURRENT_DATE
ramro = Column("ho_ki_haina" , default="ho") #boolean
data = Column("string", null=False,max_length="20") #by default null=True
Here's what data type type is behind the scene
sql_type = {
"anka":"INT ",
"string":"VARCHAR({max_length})
"miti":"DATE ",
"ho_ki_haina":"BOOLEAN ",
}
(string chai nepali ma k rakhne vanera sochirako)
Country.bata.table_banau()
Here's the list of api that you can use for executing query
country_list = Country.bata.sabaideu() # Returns List of Model Objects
print(country_list)
#output
#[] since there is no data yet
For adding data in the table , use data_hala
method.
Table.ma.data_hala(**dataharu)
Country.ma.data_hala(name="nepal",no_of_province= 8,data="nice country") # will update below
Country.ma.data_hala(name="japan",no_of_province= 37,data="nice country") #default value are added
# Now , if you call sabaideu
country_list = Country.bata.sabaideu()
#[<Country :1>,<Country :2>]
# To get single object
a = country_list[0]
print(a.name,a.no_of_province)
# nepal,8
Note: Country.bata.data_hala(name="japan",no_of_province= 37)
also works
ma
was adding cause it sounds gramatically correct than bata
😅
For filter , use khojera
method
filters = Team.bata.khojera(name="PSG")
filters = Country.bata.khojera(name="nepal" , no_of_province =20)
filters = Country.bata.khojera("or",name="japan" , no_of_province =20)
To Update data, we need to add id
before specifying updating column
If not id is provided IdXainaKanchha
exception will be raised
Country.bata.data_fera(id=1, name="Nepal", no_of_province=7,new_year='1999-01-01')
# this will update Country with id 1 and rest will be updated with data provided
a = country_list[0]
print(a.name,a.no_of_province,a.new_year)
# Nepal,7,1999-01-01
If nothing is provided after id , then SyntaxBigryoKanchha
exception will be raised
Refree.bata.data_fera(id=1) #raises SyntaxBigryoKanchha Exception
Refree.bata.data_fera(name="sinpachi") # raises IdXainaKanchha Exception
With this , this ORM will be able to perform simple CRUD OPERATIONS
To delete data_fala
(lol) is used . Use this wisely .
Country.bata.data_fala(id=2)
Country.bata.data_fala(name='japan')`
Country.bata.data_fala(no_of_provinces=')
Refree.bata.check_table_exists()
To get the use case of this orm , read the Test Case Here
Below is the list of exception you might get using sajilo orm