98 lines
1.8 KiB
Markdown
98 lines
1.8 KiB
Markdown
## Installation
|
|
Python 3.8 version is required.
|
|
```bash
|
|
python3 --version
|
|
```
|
|
|
|
Create virtual environment and install packages
|
|
```bash
|
|
virtualenv venv
|
|
source ./venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
***
|
|
|
|
## Usage
|
|
Create `.env` file and fill with similar data like `.env.example`.
|
|
Then run application:
|
|
```bash
|
|
flask run
|
|
```
|
|
***
|
|
|
|
## Testing
|
|
Run tests
|
|
```bash
|
|
pytest
|
|
```
|
|
***
|
|
|
|
### Useful commands:
|
|
Add new package
|
|
```bash
|
|
pip install NAME_OF_PACKAGE
|
|
```
|
|
Save new added package to requirements
|
|
```bash
|
|
pip freeze > requirements.txt
|
|
```
|
|
***
|
|
|
|
#### Flask commands:
|
|
Create the application structure directories
|
|
```bash
|
|
flask startapp NAME_OF_APP
|
|
```
|
|
Above command create package structure:
|
|
\
|
|
Create serializer in `__schemas__.py` file:
|
|
```python3
|
|
class ExampleSchema(ma.SQLAlchemyAutoSchema):
|
|
class Meta:
|
|
model = MODEL_NAME
|
|
```
|
|
\
|
|
Create models in `__models__.py` file:
|
|
```python3
|
|
class Example(db.Model):
|
|
__tablename__ = "examples"
|
|
|
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
title = db.Column(db.String(255), unique=True)
|
|
```
|
|
\
|
|
Create api routes in ```__routes__.py``` file. You only have to register blueprint in `app/__init__.py`.
|
|
```python3
|
|
from flask import Blueprint, make_response, jsonify, Response
|
|
|
|
|
|
bp = Blueprint("{name}", __name__, url_prefix="/{name}")
|
|
|
|
|
|
@bp.route("/", methods=["GET"])
|
|
def index() -> Response:
|
|
return make_response(jsonify({{"hello": "{name}"}}), 200)
|
|
|
|
```
|
|
\
|
|
Print all your routes
|
|
```bash
|
|
flask routes
|
|
```
|
|
Create migration, but first you have to create model
|
|
```bash
|
|
flask db migrate
|
|
```
|
|
Apply your changes to database, use after migration command
|
|
```bash
|
|
flask db upgrade
|
|
```
|
|
If you want back changes in your databases, use below command
|
|
```bash
|
|
flask db downgrade
|
|
```
|
|
Create empty migration, you can write manually migration here.
|
|
```bash
|
|
flask db revision
|
|
```
|