Install
'''''''
.. code:: shell
pip install pgsqlx-generator
Usage Sample
''''''''''''
.. code:: python
from pgsqlx.generator import Generator
if __name__ == '__main__':
coder = Generator(host='127.0.0.1', port='3306', user='xxx', password='xxx', database='test')
# you can generate a model class for one table
coder.generate_with_tables(tables='user', path='models.py')
# you can generate model classes for tables
coder.generate_with_tables(tables=['user', 'person'], path='models.py')
# you can generate model classes for all tables from a given schema. default current schema if not given
coder.generate_with_schema(schema='test', path='models.py')
If you run last code, then generate a file 'models.py' in current
directory like follow:
.. code:: python
from decimal import Decimal
from datetime import date, datetime
from pgsqlx.orm import Model, PkStrategy
class BaseModel(Model):
__pk__ = 'id'
__del_flag__ = 'del_flag'
__update_by__ = 'update_by'
__update_time__ = 'update_time'
__pk_strategy__ = PkStrategy.DB_AUTO_INCREMENT
def __init__(self, id: int = None, create_by: int = None, create_time: datetime = None, update_by: int = None, update_time: datetime = None,
del_flag: int = None):
self.id = id
self.create_by = create_by
self.create_time = create_time
self.update_by = update_by
self.update_time = update_time
self.del_flag = del_flag
class Person(BaseModel):
__table__ = 'person'
__key_seq__ = 'person_id_seq'
def __init__(self, id: int = None, name: str = None, age: int = None, birth_date: date = None, sex: int = None, grade: float = None,
point: float = None, money: Decimal = None, create_by: int = None, create_time: datetime = None, update_by: int = None,
update_time: datetime = None, del_flag: int = None):
super().__init__(id=id, create_by=create_by, create_time=create_time, update_by=update_by, update_time=update_time, del_flag=del_flag)
self.name = name
self.age = age
self.birth_date = birth_date
self.sex = sex
self.grade = grade
self.point = point
self.money = money
PgSqlx: https://pypi.org/project/pgsqlx
Raw data
{
"_id": null,
"home_page": "https://gitee.com/summry/pgsqlx/blob/master/generator.md",
"name": "pgsqlx-generator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": null,
"keywords": "PostgreSQL, PgSqlx, python",
"author": "summy",
"author_email": "xiazhongbiao@126.com",
"download_url": "https://files.pythonhosted.org/packages/c6/66/e41a4efdd0eb2b1ae7f853b18c144bd4de01c239f42db5305b03b23949da/pgsqlx-generator-1.7.4.tar.gz",
"platform": null,
"description": "Install\r\n'''''''\r\n\r\n.. code:: shell\r\n\r\n pip install pgsqlx-generator\r\n\r\nUsage Sample\r\n''''''''''''\r\n\r\n.. code:: python\r\n\r\n from pgsqlx.generator import Generator\r\n\r\n if __name__ == '__main__':\r\n coder = Generator(host='127.0.0.1', port='3306', user='xxx', password='xxx', database='test')\r\n # you can generate a model class for one table\r\n coder.generate_with_tables(tables='user', path='models.py')\r\n # you can generate model classes for tables\r\n coder.generate_with_tables(tables=['user', 'person'], path='models.py')\r\n # you can generate model classes for all tables from a given schema. default current schema if not given\r\n coder.generate_with_schema(schema='test', path='models.py')\r\n\r\nIf you run last code, then generate a file 'models.py' in current\r\ndirectory like follow:\r\n\r\n.. code:: python\r\n\r\n from decimal import Decimal\r\n from datetime import date, datetime\r\n from pgsqlx.orm import Model, PkStrategy\r\n\r\n class BaseModel(Model):\r\n __pk__ = 'id'\r\n __del_flag__ = 'del_flag'\r\n __update_by__ = 'update_by'\r\n __update_time__ = 'update_time'\r\n __pk_strategy__ = PkStrategy.DB_AUTO_INCREMENT\r\n\r\n def __init__(self, id: int = None, create_by: int = None, create_time: datetime = None, update_by: int = None, update_time: datetime = None,\r\n del_flag: int = None):\r\n self.id = id\r\n self.create_by = create_by\r\n self.create_time = create_time\r\n self.update_by = update_by\r\n self.update_time = update_time\r\n self.del_flag = del_flag\r\n\r\n\r\n class Person(BaseModel):\r\n __table__ = 'person'\r\n __key_seq__ = 'person_id_seq'\r\n\r\n def __init__(self, id: int = None, name: str = None, age: int = None, birth_date: date = None, sex: int = None, grade: float = None,\r\n point: float = None, money: Decimal = None, create_by: int = None, create_time: datetime = None, update_by: int = None,\r\n update_time: datetime = None, del_flag: int = None):\r\n super().__init__(id=id, create_by=create_by, create_time=create_time, update_by=update_by, update_time=update_time, del_flag=del_flag)\r\n self.name = name\r\n self.age = age\r\n self.birth_date = birth_date\r\n self.sex = sex\r\n self.grade = grade\r\n self.point = point\r\n self.money = money\r\n\r\n\r\nPgSqlx: https://pypi.org/project/pgsqlx\r\n\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "pgsqlx-generator is a model code generator from tables for PgSqlx.",
"version": "1.7.4",
"project_urls": {
"Homepage": "https://gitee.com/summry/pgsqlx/blob/master/generator.md"
},
"split_keywords": [
"postgresql",
" pgsqlx",
" python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c666e41a4efdd0eb2b1ae7f853b18c144bd4de01c239f42db5305b03b23949da",
"md5": "839a75587ee357aef953d40cfa28facf",
"sha256": "4d156cffc17edc8f7e4678f99de9f92a8c5a5529d876ec101ad24f1f38675f09"
},
"downloads": -1,
"filename": "pgsqlx-generator-1.7.4.tar.gz",
"has_sig": false,
"md5_digest": "839a75587ee357aef953d40cfa28facf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 5276,
"upload_time": "2024-03-29T02:32:57",
"upload_time_iso_8601": "2024-03-29T02:32:57.470139Z",
"url": "https://files.pythonhosted.org/packages/c6/66/e41a4efdd0eb2b1ae7f853b18c144bd4de01c239f42db5305b03b23949da/pgsqlx-generator-1.7.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-29 02:32:57",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pgsqlx-generator"
}