Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Instalar PyCharm
2. Crear nuevo Proyecto
3. Instalar Django
pip install Django
4. Verificar la version istalada
Python -m django --version
5. Crear el Proyecto
django-admin startproject mysite
6. Ejecutar el servidor
Se ingresa al direcorio del proyecto con
cd mysite
python manage.py runserver
validamos que el servidor se este ejecutando dando clic en la dirección ip que aparece
para continuar se agrega un nuevo terminal y se ingresa a mysite con cd mysite
7. Creamos la app preguntas
python manage.py startapp preguntas
8. Escribe tu primera vista
def index(request):
urlpatterns = [
path('preguntas/', include('preguntas.urls')),
class Pregunta(models.Model):
textopregunta= models.CharField(max_length=200)
class Opciones(models.Model):
votos = models.IntegerField(default=0)
'preguntas.apps.PreguntasConfig',
Pregunta.objects.all()
q.save()
q.id
q.textopregunta
q.fechapublicacion
q.save()
Pregunta.objects.all()
En la clase Preguntas
def __str__(self):
return self.textopregunta
def was_published_recently(self):
return self.fechapublicacion >= timezone.now() -
datetime.timedelta(days=1)
En la clase opciones
def __str__(self):
return self.textoopcion
import datetime
Pregunta.objects.all()
Pregunta.objects.filter(id=1)
Pregunta.objects.filter(textopregunta__startswith='Nu')
>>> Pregunta.objects.get(fechapublicacion__year=current_year)
Pregunta.objects.get(pk=1)
q = Pregunta.objects.get(pk=1)
q.was_published_recently()
>>> q = Pregunta.objects.get(pk=1)
>>> q.opciones_set.all()
<QuerySet []>
# Crear 3 opciones
>>> c.preguntas
>>> q.opciones_set.all()
>>> q.opciones_set.count()
2. Se ejecuta el servidor
admin.site.register(Pregunta)
Probamos la urls
127.0.0.1:8000/preguntas/1/
127.0.0.1:8000/preguntas/1/resultados/
127.0.0.1:8000/preguntas/1/votos
def index(request):
ultimaPreguntaDeLista = Pregunta.objects.order_by('-
fechapublicacion')[:5]
output = ', '.join([q.textopregunta for q in
ultimaPreguntaDeLista])
return HttpResponse(output)
def index(request):
ultimaPreguntaDeLista = Pregunta.objects.order_by('-
fechapublicacion')[:5]
template = loader.get_template('preguntas/index.html')
context = {
'ultimaPreguntaDeLista': ultimaPreguntaDeLista,
}
return HttpResponse(template.render(context, request))
#output = ', '.join([q.textopregunta for q in ultimaPreguntaDeLista])
#return HttpResponse(output)
def index(request):
ultimaPreguntaDeLista = Pregunta.objects.order_by('-
fechapublicacion')[:5]
context = {'ultimaPreguntaDeLista': ultimaPreguntaDeLista}
return render(request, 'preguntas/index.html', context)
Agregamos la línea
app_name = 'preguntas'
cambiamos
Por
<ul>
{% for opciones in pregunta.opciones_set.all %}
<li>{{ opciones.textoopcion }} -- {{ opciones.votos }} vote{{
opciones.votos|pluralize }}</li>
{% endfor %}
</ul>