Skip to content

ljavierrodriguez/base-flask-with-sqlalchemy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Proyecto con FLASK y PostgreSQL

  1. Crear carpeta y abrirla con vscode

  2. Crear archivo Pipfile

  3. Crear y activar entorno virtual para trabajar, desde el terminal ejecutar

pipenv shell
  1. Instalar los siguientes modulos:
pipenv install flask flask-migrate flask-sqlalchemy flask-cors python-dotenv psycopg2-binary
  1. Crear el archivo .env en la carpeta principal y agregar los siguiente
DATABASEURI="postgresql+psycopg2://postgres:postgres@localhost:5432/nombre-de-tu-base-de-datos"
  1. Crear la carpeta src/ y dentro crear dos archivos uno llamado app.py y un archivo llamado models.py

  2. En el archivo models.py agregar las siguientes lineas de codigo:

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
  1. En el archivo app.py agregar las siguientes importaciones
import os
from flask import Flask, jsonify
from flask_migrate import Migrate
from flask_cors import CORS
from dotenv import load_dotenv
from models import db
  1. Cargar las variables de entorno del archivo .env
load_dotenv() # cargar las variables de entorno
  1. Instanciar una variable de Flask
app = Flask(__name__)
  1. Configurar parametros de opciones de flask
app.config['DEBUG'] = True # Permite ver los errores
app.config['ENV'] = 'development' # Activa el servidor en modo desarrollo
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASEURI') # Leemos la url de conexion a la base de datos
  1. Vincular el archivo models.py a nuestro archivo app.py
db.init_app(app)
  1. Habilitar los comandos para crear las migraciones
Migrate(app, db) # db init, db migrate, db upgrade, db downgrade
  1. Crear modelo de ejemplo en el archivo models.py:
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(120), nullable=False, unique=True)
    password = db.Column(db.String(120), nullable=False)
  1. Habilitar el comando flask en el terminal (flask):

windows

SET FLASK_APP=src/app.py

Linux o Mac

export FLASK_APP=src/app.py
  1. Ejecutar los comandos de las migraciones

Crear la carpeta migrations esto es solo la primera vez

flask db init

Crear las migraciones

flask db migrate

Generar las migraciones en la base de datos

flask db upgrade
  1. Crear endpoint principal
@app.route('/')
def main():
    return jsonify({ "status": "Server Up"}), 200
  1. Validamos nuestra aplicacion
if __name__ == '__main__':
    app.run()
  1. Iniciar nuestra app desde el terminal ("python3" si estoy en maco o linux, "python" si estoy en windows)
python src/app.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published