21 de fev de 2013

Django-simple-captcha

     
     
    O django-simple-captcha é uma aplicação do django para colocar captchas no form. Usado como ferramenta anti-spam e como identificador de humanos. Ao instalar no ubuntu me deparei com alguns erros (falta do módulo _imagingft C ). Então a solução foi essa:




  •  Requisitos:
- Django 1.3+
- PIL

  • Instalação:
$ pip install django-simple-captcha

     Tentei instalar o django-simple-captcha no virtualenv, mas ele não tem suporte ao JPG ou PNG. Googlando encontrei a solução nesse blog, que cria os links para as bibliotecas (libz, libfreetype, libjpeg):

     Primeiro instale as dependências:
$ sudo apt-get build-dep python-imaging 

$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/
$ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/


    Depois é só instalar o PIL:
$ pip install pil

  • Configuração:
* settings.py:
- Adicione o 'captcha' no INSTALLED_APPS.
- Execute o python manage.py syncdb.

* urls.py:
urlpatterns += patterns('',
    url(r'^captcha/', include('captcha.urls')),
)


     E no forms.py coloque o campo CaptchaField():

from captcha.fields import CaptchaField
...
captcha = CaptchaField(label=u'Você é humano?')


  • Validação:
     Para validar o form, confirme que é humano no form.is_valid() com o human=True.
def algum_view(request):

    if request.POST:
        form = AlgumForm(request.POST)
        ...
        if form.is_valid():
            human = True
    else:
        form = AlgumForm()

    return render_to_response('template.html',locals())


     É isso ai, espero ter ajudado!! ;)

 * Fontes:
http://alemartinazzo.blogspot.com.br/2013/01/django-simple-captcha-no-ubuntu-1210.html
 http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/
 http://ubuntuforums.org/showpost.php?p=10811107&postcount=5
 https://pypi.python.org/pypi/django-simple-captcha
 https://django-simple-captcha.readthedocs.org/en/latest/
http://www.sandersnewmedia.com/why/2012/04/16/installing-pil-virtualenv-ubuntu-1204-precise-pangolin/ 

0 comentários:

Postar um comentário