Cómo crear un proyecto en PythonAnywhere
Guía para crear un proyecto de un sitio web y publicar con PythonAnywhere.
Esta guía te muestra cómo crear un proyecto en PythonAnywhere, conectarlo con GitHub, y trabajar en tu máquina local usando Git y PyCharm. Aprenderás a manejar cambios con `push` y `pull` y desplegar el proyecto en PythonAnywhere de forma eficiente.
1. Iniciar un Repositorio Git en PythonAnywhere
Conéctate a PythonAnywhere: Usa `cd` para entrar a la carpeta donde tienes tu proyecto.
cd /ruta/a/tu/proyecto
Inicializa Git: Esto crea un nuevo repositorio de Git en la carpeta actual.
git init
Añade los archivos y haz el primer commit: Guarda los archivos en el repositorio y crea el primer "snapshot" de tu proyecto.
git add . git commit -m “Primer commit”
2. Crear un Repositorio en GitHub
Ve a GitHub y crea un nuevo repositorio.
Haz clic en el botón `New` o `+` (nuevo repositorio).
Ponle un nombre al repositorio, configura la visibilidad (público o privado), y crea el repositorio.
Copia la URL del repositorio recién creado. Será algo así como:
https://github.com/tu-usuario/tu-repositorio.git
3. Conectar el Repositorio Local en PythonAnywhere con GitHub
Añade el repositorio remoto de GitHub a tu repositorio local en PythonAnywhere.
git remote add origin https://github.com/tu-usuario/tu-repositorio.git
Nota: Si deseas que Git recuerde tus credenciales al hacer `push`, ejecuta este comando en tu terminal:
git config credential.helper store
Esto guarda tus credenciales de GitHub de manera local, evitando que te las pida cada vez.
Aquí en este paso es probable que Git te pida indicar un usuario y contraseña para conectar el repositorio remoto si es privado, para eso debes crear un token en GitHub, puedes investigar o leer la próxima Guía aquí para configurar GitHub.
Empuja tus cambios al repositorio remoto en GitHub.
git branch -M main git push -u origin main
4. Clonar el Proyecto en tu Computadora Local
bre una terminal en tu computadora local y navega al directorio donde deseas clonar el repositorio.
cd /ruta/a/tu/directorio
Clona el repositorio desde GitHub.
git clone https://github.com/tu-usuario/tu-repositorio.git
Navega al directorio del repositorio clonado.
cd tu-repositorio
5. Crear una Rama de Desarrollo (opcional)
En tu computadora local, crea una nueva rama de desarrollo para trabajar en tu proyecto sin afectar la rama principal (`main`).
git checkout -b desarrollo
6. Hacer Cambios y Subirlos a GitHub
Realiza los cambios necesarios en tu proyecto.
Añade y haz commit de los cambios.
git add . git commit -m "Descripción de los cambios"
Empuja los cambios a la rama `desarrollo` en GitHub.
git push origin desarrollo
7. Hacer Merge de Cambios en GitHub
Ve a tu repositorio en GitHub y abre una "Pull Request" desde la rama `desarrollo` hacia la rama `main`.
Revisa los cambios y haz merge de la "Pull Request" cuando estés listo.
8. Actualizar el Servidor en PythonAnywhere
Conéctate a tu servidor en PythonAnywhere.
avega a tu proyecto y obtén los últimos cambios de GitHub.
cd /ruta/a/tu/proyecto git pull origin main
Resumen de Comandos
# PythonAnywhere
cd /ruta/a/tu/proyecto
git init
git add .
git commit -m "Primer commit"
git remote add origin https://github.com/tu-usuario/tu-repositorio.git
git branch -M main
git push -u origin main
# Computadora local
cd /ruta/a/tu/directorio
git clone https://github.com/tu-usuario/tu-repositorio.git
cd tu-repositorio
git checkout -b desarrollo
# Después de hacer cambios
git add .
git commit -m "Descripción de los cambios"
git push origin desarrollo
# PythonAnywhere (después de merge)
cd /ruta/a/tu/proyecto
git pull origin main
*Nota: Recuerda que crear una rama de desarrollo es opcional. Si prefieres, puedes simplemente hacer `git push` desde la máquina local y luego hacer `git pull` desde la consola en PythonAnywhere después de probar todo localmente.
Configura la Seguridad en Producción
Antes de desplegar tu proyecto en producción en PythonAnywhere, asegúrate de configurar correctamente las variables de entorno y otros ajustes de seguridad. Aquí tienes los pasos clave.
1. Establecer Variables de Entorno
Crea un archivo `.env` para almacenar variables sensibles. Esto te permite tener configuraciones diferentes para desarrollo y producción.
Variables que debes incluir:
DEBUG: Debe ser `True` en local pero `False` en producción.
STATIC_ROOT y MEDIA_ROOT: Las rutas serán diferentes en local y producción.
3. SECRET_KEY: Genera una cadena aleatoria de más de 50 caracteres y guárdala en el archivo `.env`.
4. HTTPS y SSL: Configura las variables para asegurar el uso de HTTPS y proteger tu aplicación contra ataques.
2. Configurar `settings.py`
Para gestionar las variables del archivo `.env`, instala la librería `python-decouple`:
pip install python-decouple
Luego, en `settings.py`, importa la librería y usa las variables:
from decouple import config
Configurar DEBUG
DEBUG = config('DEBUG', default=False, cast=bool)
Configurar STATIC y MEDIA
MEDIA_ROOT = '/home/<username>/<project_name>/media'
MEDIA_URL = '/media/'
STATIC_ROOT = '/home/<username>/<project_name>/static'
STATIC_URL = '/static/'
if config('LOCAL') == 'True':
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
Guarda una cadena aleatoria para `SECRET_KEY` en tu archivo `.env`:
SECRET_KEY = 'example-sdf784%·$% DJbfgfewgeif8'
Y en `settings.py`:
SECRET_KEY = config('SECRET_KEY')
3. Configurar Seguridad de HTTPS y SSL
En `settings.py`, añade las siguientes configuraciones para forzar conexiones seguras en producción:
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
Estas configuraciones ayudan a que tu sitio use HTTPS de forma predeterminada y protegen las cookies de sesión y CSRF.
Con estas configuraciones y pasos, aseguras que tu proyecto en PythonAnywhere esté listo para producción y siga las mejores prácticas de seguridad.