Skip to main content

Automatic generate model layer and controller layer code for SQLAlchemy with Flask support

Project description

sqlalchemy-codegen

features

This is a tool that can generate corresponding Model and controller layer codes based on the sqlalchemy ORM framework through command-line operation. It supports generating codes for the entire database or for specific tables. Additionally, it supports generating codes based on the Flask framework.

Code repository and related addresses: github:https://github.com/ncepu-iDealStudio/sqlalchemy-codegen;

gitee:https://gitee.com/ncepu-bj/sqlalchemy-codegen;

document:https://idealstudio-ncepu.yuque.com/docs/share/b5dcc5ff-fcba-4efd-8955-faeba859bfcf;

pypi:https://pypi.org/project/sqlalchemy-codegen/

What's new and different:

  • Support python3.12 and sqlacodegen3.0.0rc3 SQLAlchemy2.0.25.
  • Support for generate controller layer.
  • Support for generate Model layer include many model py files.
  • Support for Flask-SQLAlchemy syntax using --flask option.
  • Defaults to generating backrefs in relationships. --nobackref still included as option in case backrefs are not wanted.
  • Naming of backrefs is class name in snake_case (as opposed to CamelCase) and is pluralized if it's Many-to-One or Many-to-Many using inflect.
  • Primary joins are explicit.
  • If column has a server_default set it to FetchValue() instead of trying to determine what that value is. Original code did not set the right server defaults in my setup.
  • --ignore-cols ignores special columns when generating association tables. Original code requires all columns to be foreign keys in order to generate association table. Example: --ignore-cols id,inserted,updated.
  • Uses the command flask-sqlacodegen instead of sqlacodegen.
  • Added support for --notables to only generate model classes, even for association tables

Install

With pip:

pip install sqlalchemy-codegen

Without pip:

git clone https://gitee.com/ncepu-bj/sqlalchemy-codegen.git
cd sqlalchemy-codegen/
python setup.py install

For contributing:

git clone https://gitee.com/ncepu-bj/sqlalchemy-codegen
python -m venv env
pip install -r requirements.txt
python -m codegen.main mysql+pymysql://<username>:<password>@<database-ip>:<port>/<database-name> --flask --models_layer --controller_layer --outdir ddist[--tables <tablenames>] [--notables] 

How To use:

sqlalchemy-codegen mysql+pymysql://root:password@ip:port/database --flask --models_layer --controller_layer --outdir dist

example:

sqlalchemy-codegen mysql+pymysql://root:123456@127.0.0.1:3306/testdb --flask --models_layer --controller_layer --outdir dist

or:

sqlalchemy-codegen mysql+pymysql://root:123456@127.0.0.1:3306/testdb --models_layer --controller_layer --outdir dist

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

sqlalchemy_codegen-1.1.2-py2.py3-none-any.whl (29.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file sqlalchemy_codegen-1.1.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sqlalchemy_codegen-1.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2f768aeaa109a240f43a55b468caf10e47ce9130e600ad06442c41c263a30d0c
MD5 d629195cb34fad98a715c75887771885
BLAKE2b-256 a3a3415f86817299f1a90f92456f041dc4ec9a6362ae730d33f6772cf77eea78

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