GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

formspree

formspree – PHPまたはJavaScriptなしの簡単なHTMLフォーム

投稿日:

PHPまたはJavaScriptなしの簡単なHTMLフォーム https://formspree.io

FORMSPREE.IO

機能的なHTMLフォーム。 https://formspree.ioでホストされています

あなたのフォームをURLに送信するだけで、あなたのメールに転送されます。 PHP、Javascript、サインアップは不要 – 静的なサイトに最適! 例:

<form action="https://formspree.io/you@email.com">
    <input type="text" name="name">
    <input type="email" name="_replyto">
    <input type="submit" value="Send">
</form>

設定は簡単で無料です。 方法は次のとおりです。

登録する必要はありません。

1. HTMLフォームの設定

フォームのaction属性をthisに変更し、your @email.comを自分のメールアドレスに置き換えてください。

2.フォームを送信し、メールアドレスを確認します。

あなたのウェブサイトに行き、フォームを一度提出してください。 これにより、誰もあなたがランダムなウェブサイトからあなたにスパムを送信しないように、あなたのメールアドレスを確認する電子メールが送信されます。

3.すべてのセットは、電子メールを受信する

今後、誰かがそのフォームを送信すると、そのデータを電子メールで転送します。

高度な機能:

フォーム入力には、機能を変更する特別に名前付きの名前属性を含めることができます。 それらはすべて先頭にアンダースコアが付いています。

_に返信

この値は、電子メールの返信先フィールドに使用されます。 こうすることで、最初にフォームを送信した人に返信するために、電子メールに直接「返信」することができます。

_次

デフォルトでは、フォームを送信した後、ユーザーにはFormspreeの「ありがとうございました」ページが表示されます。 そのページの代替URLを指定することができます。

_subject

この値は電子メールの件名に使用されるため、毎回件名を編集することなく、投稿にすばやく返信することができます。

_cc

この値は電子メールのCCフィールドに使用されます。 これにより、各投稿のコピーを別のメールアドレスに送信できます。 複数の電子メールを参照する場合は、ccフィールドにカンマで区切られた電子メールのリストを作成するだけです。

_gotcha

この “ハニーポット”フィールドを追加すると、スクレイパーをだますことで迷惑メールを防ぐことができます。 値が指定されている場合、投稿は暗黙のうちに無視されます。 入力はCSSで非表示にする必要があります。

AJAXを使用する

Formspree Goldユーザーは、AJAX経由でフォームを送信できます。 これはクロスオリジンでも機能します。 そのトリックは、Acceptヘッダーをapplication / jsonに設定することです。 jQueryを使用している場合、これは次のように行うことができます:

$.ajax({
    url: "https://formspree.io/FORM_ID",
    method: "POST",
    data: {message: "hello!"},
    dataType: "json"
});

問題が発生している場合は、wikiのよくある質問をご覧ください

Formspreeの独自のコピーを実行する

localhostで実行する

SendGridアカウント、PostgreSQL、Redis、Python 2.7が必要です.pipをインストールし、サーバーの仮想環境を作成する必要があります。

環境が設定されたら、postgresqlデータベースを作成し、ソースをクローンしてFormspreeリポジトリのルートにcdします。 次に、

pip install -r requirements.txt

次のような構成で.envファイルを作成します。

API_ROOT='http://127.0.0.1:5000'
CONTACT_EMAIL='support@example.com'
DATABASE_URL='postgresql://<username>@127.0.0.1:5432/formspree'
DEBUG='True'
DEFAULT_SENDER='no-reply@localhost.com'
LOG_LEVEL='debug'
MONTHLY_SUBMISSIONS_LIMIT='100'
NONCE_SECRET='y0ur_n0nc3_s3cr3t'
HASHIDS_SALT='a salt'
REDISTOGO_URL='127.0.0.1:6379'
SECRET_KEY='y0ur_s3cr3t_k3y'
SENDGRID_PASSWORD='<password>'
SENDGRID_USERNAME='<username>'
SERVICE_NAME='LocalFormspree'
SERVICE_URL='http://127.0.0.1:5000'
TEST_DATABASE_URL='postgresql://<username>@127.0.0.1:5432/formspree-test'

formspreeと呼ばれるpostgresqlデータベースがあることを確認し、次のformspreeを実行して必要なテーブルを作成します。

python manage.py db upgrade

サーバーを実行する準備が整いました。

python manage.py runserver

テストの実行

REDISTOGO_URL='0.0.0.0:6379' \
TEST_DATABASE_URL=postgresql://<username>@127.0.0.1:5432/formspree-test \
NONCE_SECRET='y0ur_n0nc3_s3cr3t' \
HASHIDS_SALT='a salt' \
SECRET_KEY='y0ur_s3cr3t_k3y' \
STRIPE_TEST_PUBLISHABLE_KEY='<STRIPE PUBLISHABLE>' \
STRIPE_TEST_SECRET_KEY='<STRIPE SECRET>' \
python -m unittest discover

テストを実行するときに実際のformspreeデータベースを使用しないようにしてください。 formspreeformspreeデータベースにあるすべてのデータが失われます。 代わりに、 formspree-testという新しいデータベースを作成します。

Foremanを使用して、実行中のテストを自動化することもできます。 インストール後、 foreman run venv/bin/python -m unittest discoverを実行して、テストスイート全体を実行します。 単一のテストファイルを実行するには、 foreman run venv/bin/python -m unittest tests.test_usersます。 この場合、 tests/test_users.pyだけが実行されtests/test_users.py

ヘロクで走る

Herokuのツールベルトを取り付ける必要があります。

環境設定が完了したら、ソースをクローンしてFormspreeリポジトリのルートに移動します。 次に、

heroku apps:create [your project name]

次に

git push heroku

新しいプロジェクトは[あなたのプロジェクト名] .herokuapp.comで実行されます。

依存関係

FormspreeはPostgreSQLデータベースを必要とし、SendGridを使用して電子メールを送信します。 もしあなたがHerokuにデプロイしているなら、無料のHeroku PostgresデータベースとSendGridアカウントを走らせることができます

heroku addons:create heroku-postgresql:hobby-dev
heroku addons:create sendgrid

Formspreeの設定

Formspreeが正しく動作するために設定されるべき環境変数のリストについては、 formspree/settings.pyファイルを見てください。

貢献する

FormspreeはGitHubで管理されるオープンソースプロジェクトです。 コミュニティからの寄付をすべて歓迎しますが、問題を開く前に寄稿者のガイドラインを確認してください。







-formspree
-, , ,

執筆者: