Skip to main content

Hobbit - A flask project generator.

Project description

Hobbit-core

CircleCI Documentation Status PyPi-Version Python-version codecov License

A flask project generator. Based on Flask + SQLAlchemy + marshmallow + webargs.

https://hobbit-core.readthedocs.io/zh/latest/

Installation

Install and update using pip(Still using Python 2? It is time to upgrade.):

pip install -U "hobbit-core[hobbit]"  # just install hobbit cmd
pip install -U "hobbit-core[hobbit,hobbit_core]"  # recommended when use virtualenv

A Simple Example

Init project:

hobbit --echo new -n demo -d /tmp/demo -p 5000 -t rivendell
cd /tmp/demo
pipenv install -r requirements.txt --pre && pipenv install --dev pytest pytest-cov pytest-env ipython flake8 ipdb
pipenv shell

flask cli:

(demo) ➜  FLASK_APP=app.run:app flask
Usage: flask [OPTIONS] COMMAND [ARGS]...

  A general utility script for Flask applications.

  An application to load must be given with the '--app' option, 'FLASK_APP'
  environment variable, or with a 'wsgi.py' or 'app.py' file in the current
  directory.

Options:
  -e, --env-file FILE   Load environment variables from this file. python-
                        dotenv must be installed.
  -A, --app IMPORT      The Flask application or factory function to load, in
                        the form 'module:name'. Module can be a dotted import
                        or file path. Name is not required if it is 'app',
                        'application', 'create_app', or 'make_app', and can be
                        'name(args)' to pass arguments.
  --debug / --no-debug  Set debug mode.
  --version             Show the Flask version.
  --help                Show this message and exit.

Commands:
  db      Perform database migrations.
  routes  Show the routes for the app.
  run     Run a development server.
  shell   Runs a shell in the app context.
(demo) ➜  FLASK_APP=app.run:app flask routes
Endpoint      Methods  Rule
------------  -------  -----------------------
static        GET      /static/<path:filename>
tools.option  GET      /api/options
tools.ping    GET      /api/ping

Run server

(demo) ➜  flask -A app/run.py run
    * Serving Flask app 'app/run.py'
    * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
    * Running on http://127.0.0.1:5000
➜  ~ curl http://127.0.0.1:5000/api/ping
{"ping":"ok"}
➜  ~ curl http://127.0.0.1:5000/api/options
{}

Run test:

(demo) ➜ py.test
===================================================== test session starts ======================================================
platform darwin -- Python 3.7.0, pytest-5.0.1, py-1.8.0, pluggy-0.12.0 -- /Users/Legolas/.virtualenvs/demo-OzheZQoG/bin/python3.7
cachedir: .pytest_cache
rootdir: /private/tmp/demo, inifile: pytest.ini
plugins: env-0.6.2, cov-2.7.1
collected 2 items

tests/test_option.py::TestOption::test_options PASSED
tests/test_ping.py::TestAPIExample::test_ping_api PASSED

---------- coverage: platform darwin, python 3.7.0-final-0 -----------
Name                         Stmts   Miss  Cover   Missing
----------------------------------------------------------
app/__init__.py                  0      0   100%
app/configs/__init__.py          0      0   100%
app/configs/default.py           6      0   100%
app/configs/development.py       1      1     0%   1
app/configs/production.py        2      2     0%   1-3
app/configs/testing.py           8      0   100%
app/core/__init__.py             0      0   100%
app/exts.py                      8      0   100%
app/models/__init__.py           2      0   100%
app/models/consts.py             1      0   100%
app/run.py                      35      1    97%   49
app/schemas/__init__.py          2      0   100%
app/services/__init__.py         2      0   100%
app/services/option.py           6      0   100%
app/tasks/__init__.py            1      1     0%   1
app/utils/__init__.py            0      0   100%
app/views/__init__.py            2      0   100%
app/views/option.py              5      0   100%
app/views/ping.py                7      0   100%
tests/__init__.py               17      1    94%   29
tests/conftest.py               11      0   100%
tests/test_option.py             5      0   100%
tests/test_ping.py               5      0   100%
----------------------------------------------------------
TOTAL                          126      6    95%


=================================================== 2 passed in 0.24 seconds ===================================================

Others

hobbit --help

dev

pip install "hobbit-core[hobbit,hobbit_core]=={version}" --pre --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/

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

hobbit_core-4.0.0.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

hobbit_core-4.0.0-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file hobbit_core-4.0.0.tar.gz.

File metadata

  • Download URL: hobbit_core-4.0.0.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for hobbit_core-4.0.0.tar.gz
Algorithm Hash digest
SHA256 a138d8c59f2a17fad8888beb483d68d741f19860c88dd0500289ca71d4756d69
MD5 88f867285d07db8f47f7a558339bfbc8
BLAKE2b-256 bdfd080a9f16280c364476069df2b90180276c9e1f98e8d9b6d024b496740bce

See more details on using hashes here.

File details

Details for the file hobbit_core-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: hobbit_core-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for hobbit_core-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9bde96bd1654e47ae925331493415563029ed39330d216ac6f314a9177ee360a
MD5 9448b51abe9bd9608d1bb182eaf74a46
BLAKE2b-256 1f01a34fac60d3099c91e2a7704657734008896f50bc1376428792ebed657017

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