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:
- PIL
- Instalação:
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:
- 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()
É 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