Skip to content

Configuración Python

Configuración para Flask, Django y FastAPI.

Terminal window
cd /root
git clone git@github.com:tu-usuario/proyecto-python.git
cd proyecto-python
Flask==3.0.0
gunicorn==21.2.0
python-dotenv==1.0.0
Django==5.0.0
gunicorn==21.2.0
psycopg2-binary==2.9.9
django-environ==0.11.2
fastapi==0.109.0
uvicorn[standard]==0.27.0
pydantic==2.5.0
python-multipart==0.0.6
FROM python:3.11-slim
WORKDIR /app
# Dependencias del sistema
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
postgresql-client \
&& rm -rf /var/lib/apt/lists/*
# Dependencias Python
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Código de aplicación
COPY . .
# Usuario no root
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
# Flask
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "4", "app:app"]
# Django
# CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "4", "config.wsgi:application"]
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "4"]
.git
.env
__pycache__
*.pyc
*.pyo
*.pyd
.Python
venv/
env/
.venv/
db.sqlite3
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return {'message': 'Hello from Flask!'}
if __name__ == '__main__':
app.run()

Archivo config/settings.py debe tener:

import environ
env = environ.Env()
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['*'])
DEBUG = env.bool('DEBUG', default=False)
DATABASES = {
'default': env.db('DATABASE_URL', default='sqlite:///db.sqlite3')
}
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello from FastAPI!"}