Maalesef söylemek, ancak bu modül ve düzeni biraz olanlar için kafa karıştırıcı açıklanmıştır: Bu benim kullandığım bir önemsiz trac eklentisinden bir örnektir kurulumdan sonra ">> yardım (modulename)" kullanmayı tercih eden Cherrypy kullanarak bir örnek vereceğim ve daha sonra bazı cgi ile ilgili yorumlar yapacağım.
012 reCAPTCHA'yı
yanıtı içeren bir kap sınıf
İlk olarak, tüm yolu capcha.py'ye aktarmanız, ardından da yanıtı görüntüleyen ve ele alan bir dizi işlev oluşturmanız gerekir.
from recaptcha.client import captcha
class Main(object):
@cherrypy.expose
def display_recaptcha(self, *args, **kwargs):
public = "public_key_string_you_got_from_recaptcha"
captcha_html = captcha.displayhtml(
public,
use_ssl=False,
error="Something broke!")
# You'll probably want to add error message handling here if you
# have been redirected from a failed attempt
return """
<form action="validate">
%s
<input type=submit value="Submit Captcha Text" \>
</form>
"""%captcha_html
# send the recaptcha fields for validation
@cherrypy.expose
def validate(self, *args, **kwargs):
# these should be here, in the real world, you'd display a nice error
# then redirect the user to something useful
if not "recaptcha_challenge_field" in kwargs:
return "no recaptcha_challenge_field"
if not "recaptcha_response_field" in kwargs:
return "no recaptcha_response_field"
recaptcha_challenge_field = kwargs["recaptcha_challenge_field"]
recaptcha_response_field = kwargs["recaptcha_response_field"]
# response is just the RecaptchaResponse container class. You'll need
# to check is_valid and error_code
response = captcha.submit(
recaptcha_challenge_field,
recaptcha_response_field,
"private_key_string_you_got_from_recaptcha",
cherrypy.request.headers["Remote-Addr"],)
if response.is_valid:
#redirect to where ever we want to go on success
raise cherrypy.HTTPRedirect("success_page")
if response.error_code:
# this tacks on the error to the redirect, so you can let the
# user knowwhy their submission failed (not handled above,
# but you are smart :-))
raise cherrypy.HTTPRedirect(
"display_recaptcha?error=%s"%response.error_code)
Sadece ben Çeklerinizin yapmak cherrypy en request.headers ve kullanım alanı depolama kullanılan REMOTE_ADDR ortam değişkenini kullanmak, hemen hemen cgi kullanılıyorsa aynı olacak. https://developers.google.com/recaptcha/docs/display
Doğrulama hataları işlemek gerekebilir: https://developers.google.com/recaptcha/docs/verify
Merhaba başrahip, Python için yeni, nasıl açıklarsınız sihirli yoktur
, modül sadece belgeler aşağıda İndirilen paketi daha ayrıntılı olarak kullanın? –
Normal bir python paketi olarak yüklemelisiniz. Tüm bunlara yeniyseniz, python ile ilgili bir giriş dersi okumanızı tavsiye ederim. Http://diveintopython.org/toc/index.html veya http://docs.python.org/tutorial/index.html yi iyi bir başlangıç noktası olarak deneyebilirsiniz. – abbot