Walkyourplace Django
Contents
State of the art
EL código que se comenzó a editar se extrajo de los siguientes link:
- (1) https://github.com/mepa1363/wyp-client
- (2) https://github.com/mepa1363/wyp-server-ogc
- (3) https://github.com/mepa1363/wyp-wrapper-geoserver-centralized-transit
- (4) https://github.com/mepa1363/wyp-wrapper-geoserver-centralized-bike
- (5) https://github.com/mepa1363/wyp-wrapper-geoserver-centralized-pedestrian
- (6) https://github.com/mepa1363/wyp-wrapper-geoserver-centralized-walkscore
- (7) https://github.com/mepa1363/wyp-wrapper-geoserver-centralized-walkourplace
De los cuales (1) es la interfaz gráfica, (2) es el servidor el cual crea los puertos para la comunicación y los demás son los módulos de geoserver para manejar las peticiones.
Migración a Django Python
Lo primero es crear un nuevo proyecto en Django
django-admin startproject wypdjango
cd wypdjango
En donde nos encontramos con:
- manage.py
- wypdjango/
- __init__.py
- settings.py
- urls.py
- wsgi.py
Manage.py es quien nos ayudará a correr la web, tanto en etapa de desarrollo como en producción, éste tomará en cuenta todas las carpetas que contengan el archivo __init__.py (el cual no cuenta con contenido), por lo mismo éste archivo no debe ser editado. Settings.py es en donde se encuentra toda la configuración que le asignemos, entre ella la conexión a la base de datos y la posición de los templates html. Urls.py será en donde listemos las URLs que queramos utilizar, además cumple la función de enlazar dicha url con una función desarrollada en lenguaje Python. Entonces, sabiendo esto hay que crear dos nuevas carpetas llamadas static y template, la primera para contener todos los archivos css y js que necesitemos y la segunda para retener todos los html, luego editamos el archivo wypdjango/settings.py con lo siguiente:
import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) PROJECT_PATH = os.path.realpath(os.path.dirname(__file__)) ... INSTALLED_APPS = ( ... 'django.contrib.staticfiles', 'wyp', ) ... STATIC_URL = '/static/' TEMPLATE_DIRS = ( PROJECT_PATH + '/../template/', ) STATIC_ROOT = PROJECT_PATH + '/../static/' ADMIN_MEDIA_PREFIX = '/static/admin/' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'template'), )
Luego se clona el repositorio git (1) dentro de la carpeta template
cd template git clone https://github.com/mepa1363/wyp-client .
Volvemos a la raíz y creamos una app dentro del proyecto para manejar la aparición del templace
cd ..
django-admin startapp wyp
Con esto se crea una carpeta llamada wyp con:
- __init__.py
- admin.py
- models.py
- test.py
- views.py
En donde en models.py creamos clases que corresponderán a los modelos en la base de datos, en views.py creamos las funciones que guiarán en la aparición de las vistas (Que posteriormente llamaremos con urls.py), admin.py que es donde se registran los modelos de la bse de datos que se quieran mostrar en el panel de administración. Test.py para realizar pruebas (nunca lo he ocupado) e __init__.py para que sea reconocido por manage.py.
En wyp/views.py editamos lo siguiente:
from django.shortcuts import render_to_response from django.template.context import RequestContext def inicio(request): return render_to_response('index.html',context_instance=RequestContext(request))
y en wypdjango/urls.py editamos:
from wyp.views import inicio urlpatterns = patterns('', ... url(r'^admin/', include(admin.site.urls)), url(r'^$', inicio), ) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += staticfiles_urlpatterns()
Nos posicionamos en la raíz y ejecutamos los siguientes comandos:
python manage.py collectstatics #Rescata los archivos css y js del panel de administración y de los que tenga el template html python manage.py makemigrations #Crea los archivos .py para editar la base de datos python manage.py migrate #Edita la base de datos con los cambios juntados en makemigrations python manage.py runserver #Corre un servidor local con la web
Con el último comando corriendo, nos dirigimos a un navegador web y entramos a http://localhost:8000/ y nos encontraremos con el index.html de walkyourplace.
Ya tenemos al menos la vista principal del proyecto, ahora debemos hacerlo funcionar.
Funcionamiento actual
Archivos que se encuentran actualmente en el proyecto
Características nuevas
Lo nuevo integrado gracias a Django