Django学習ノート-検証コード


ほとんどのブログサイトではユーザーログイン機能は設定されません.フォームに認証コードメカニズムが追加されなければ、spammerのクレイジーな攻撃を待っています.私はかつて大損をしたことがあります:前の1つのウェブサイトは平均して毎日数十件のごみの伝言を残して、削除しても間に合わない.その後、ネット上で優秀なマスクspamのプラグイン--akismetを見つけました.使用後、やはり効果があり、基本的にはゴミ情報が遮断されています.つまり、フロントでは見えませんが、問題はこれらのゴミコメントが絶えずあなたのデータベーステーブルに書き込まれているのか、管理バックグラウンドでは存在するのかということです.だから、目が見えないために心が煩わしくなくて、一労永逸で、やはりウェブサイトに検証コードのメカニズムを増やすことを決定して、後でフォームを提出するのは少し煩わしいですが、しかしウェブサイトはやっときれいに落ちました.
pythonやdjangoを使うメリットは何ですか?ある機能を実現したいときは、まずネットで検索してみてください.多くの場合、この問題を解決した人がいて、関連するライブラリを発表していることに気づきます.持ってきてそのまま使えばOKです.「django、検証コード」を検索すると、django-simple-captchaが現れ、その紹介を見てみると、本当に使いやすいdjangoサードパーティ検証コードライブラリであることがわかり、すぐに私のこのブログサイトに使用しました.以下、その使い方を簡単に記録します.
一、紹介
  • プロジェクトアドレス:http://code.google.com/p/django-simple-captcha/
  • 概要:フォームに認証コードピクチャ
  • を追加するサードパーティdjango APPです.
    二、一般的な使い方
  • ダウンロード後python setup.py installインストール
  • ダウンロードパッケージを解凍し、myblog/captcha
  • のような中のcaptchaパッケージをプロジェクトディレクトリにコピーします.
  • settings.pyに追加:
    ?
    1 INSTALLED_APPS(‘captcha’,)
  • urls.pyに追加:
    ?
    1 (r’^captcha / ’, include(‘captcha.urls’)),
  • python manageを実行する.py syncdb生成に必要なデータベーステーブル
  • captchaを使用する必要があるforms.pyファイルの適切な場所に次のコードを追加し、検証コードフィールドを追加します.
    ?
    1
    2
    3 from captcha.fields import CaptchaField
      captcha = CaptchaField()
  • 処理フォームで発行されたビジネスロジックコードブロックに追加:
    ?
    1
    2 if form.is_valid():      human = True

  • 三、djangoのcommentsコンポーネントと組み合わせて使用する方法
    プロジェクト内のコメントシステムが直接使用するdjango内蔵commentsライブラリの場合、commentsライブラリとこの検証コードライブラリを組み合わせて使用する方法は次のとおりです.
  • 前の1~5ステップ
  • を実行する.
  • Python 27Libsite-packagesdjangocontribcommentsforms.pyファイル(windows環境でのパス)では、CommentDetailsFormクラスに認証コードフィールドを追加します.
    ?
    1
    2
    3 from captcha.fields import CaptchaField
      captcha = CaptchaField()
  • Python 27Libsite-packagesdjangocontribcommentsviewscomments.pyファイルで、#Otherwise create the commentという文の下に追加します.
    ?
    1 human = True
  • フォームテンプレートの変更:コメントフォームテンプレートが直接使用される{form}}であれば、何も変更する必要はありません.自分でカスタマイズしたフォームテンプレートの場合は、次のように追加できます.
    ?
    1
    2
    3 < p > < label for = "id_captcha" > ( ):</ label > {{form.captcha}} </ p >

  • これで基本的に使えるようになり、効果図を切り取ってみました.
    記事の出典:http://newliu.com/post/5/