Receta Formulario de Contacto

340 views
Skip to first unread message

Mari Gangrena

unread,
May 27, 2009, 1:52:13 PM5/27/09
to djan...@googlegroups.com
Les transmito una pequeña receta para poner en sus proyectos de Django un formulario de contacto que utiliza gmail como smtp:

django-admin.py startproject contacto
cd contacto
mkdir templates

(modificamos)
nano settings.py
TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    '/home/TUUSUARIO/contacto/templates/',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'contacto.formulario',
)
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='t...@gmail.com'
EMAIL_HOST_PASSWORD='contraseña'
EMAIL_PORT=587
EMAIL_USE_TLS=True

Guardamos....

python manage.py startapp formulario
nano urls.py


from django.conf.urls.defaults import *

from contacto.formulario.views import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^contacto/', include('contacto.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # (r'^admin/(.*)', admin.site.root),
    (r'^contacto/$', contacto),
    #(r'^enviado/$', enviado),
)

urlpatterns += patterns('django.views.generic.simple',
    (r'^enviado/$', 'direct_to_template', {'template':'enviado.html'}),
)


Guardamos...

cd formulario
nano forms.py


from django import forms


class ContactForm(forms.Form):
        sucorreo=forms.EmailField()
        mensaje=forms.CharField()


Guardamos...
nano views.py


#-*- coding: utf-8 -*-
# Create your views here.

from contacto.formulario.forms import ContactForm
from django.template import RequestContext, loader
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect

def contacto(request):
        if request.method == 'POST':
                form = ContactForm(request.POST)
                if form.is_valid():
                        s=form.cleaned_data['sucorreo']
                        m=form.cleaned_data['mensaje']
                        from django.core.mail import send_mail
                        send_mail('Mensaje desde su web', u'Dirección: %s, Mensaje: %s'%(s,m), 'remi...@gmail.com',['des...@gmail.com'], fail_silently=False)
                        return HttpResponseRedirect('/enviado/')
        else:
                form=ContactForm()
        return render_to_response('contact.html', {'form':form,})

cd ..
cd templates
nano contact.html


<html>
<body>

<center>
<form method="POST" action=".">
<table>
{{ form }}
</table>

<input type="submit" value="enviar">

</form>
</center>
</body>
</html>

Guardamos...
nano enviado.html

<html>
<body>

Enviado!


</body>
</html>

Guardamos
cd ..
python manage.py runserver
127.0.0.1:8000/contacto/


No se si me he dejado algo en el tintero.









carlos Rocha

unread,
May 28, 2009, 3:09:27 PM5/28/09
to djan...@googlegroups.com
gracias lo voy a probar se ve interesante

2009/5/27 Mari Gangrena <nomeac...@gmail.com>
Reply all
Reply to author
Forward
0 new messages