編集:テストしたい場合は、このgithubリポジトリにコードをデプロイしました
私が実装したい基本的な機能は、フォームからメールを送信することです。あなたのウェブサイトにある他の連絡フォームとほぼ同じです。デモのURLはtakemailer.appspot.comです。
URLに表示されているフォームは、サーバーにPOSTリクエストを送信します。私がリクエストを処理するビューは次のとおりです。
def post_data(request):
logging.info(request.POST)
frm_name = request.POST['name'] frm_mail = request.POST['email']
frm = frm_name + " <" + frm_mail + ">"
frm = '"%s"' % frm #above two lines # done to produce a format like "Name <name@mail.com>"
sub = request.POST['subject']
cmnt = request.POST['comment']
extra = str(frm + sub + cmnt)
logging.info(frm)
a = mail.send_mail(sender=frm,
to="Albert Johnson <du***@gmail.com>",
subject=sub,
body=cmnt)
logging.info(a)
return http.HttpResponse("1")
上記のバージョンのコードは機能せず、発生します
<class 'django.core.exceptions.ImproperlyConfigured'>: You haven't set the DATABASE_ENGINE setting yet.
下部にスタックトレースが添付されています。
ただし、以下に示すように、ビュー機能を変更して電子メールからをハードコーディングすると、シームレスに機能します。
def post_data(request):
logging.info(request.POST)
sub = request.POST['subject']
cmnt = request.POST['comment']
a = mail.send_mail(sender="Albert Johnson <du***@gmail.com>",
to="Albert Johnson <du***@gmail.com>",
subject=sub,
body=cmnt)
logging.info(a)
return http.HttpResponse("1")
上記が機能している理由と上記のものが機能していない理由について何か考えがあり、そのようなエラーが発生しますか?
スタックトレース:
Traceback (most recent call last):
File "/base/data/home/apps/s~takemailer/1.357442066172211834/django_bootstrap.py", line 65, in <module>
main()
File "/base/data/home/apps/s~takemailer/1.357442066172211834/django_bootstrap.py", line 62, in main
util.run_wsgi_app(application)
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 98, in run_wsgi_app
run_bare_wsgi_app(add_wsgi_middleware(application))
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/util.py", line 116, in run_bare_wsgi_app
result = application(env, _start_response)
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/core/handlers/wsgi.py", line 189, in __call__
response = self.get_response(request)
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/core/handlers/base.py", line 115, in get_response
receivers = dispatcher.send(signal=signals.got_request_exception)
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/dispatch/dispatcher.py", line 360, in send
**named
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/dispatch/robustapply.py", line 47, in robustApply
return receiver(*arguments, **named)
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/db/__init__.py", line 47, in _rollback_on_exception
transaction.rollback_unless_managed()
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/db/transaction.py", line 145, in rollback_unless_managed
connection._rollback()
File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/db/backends/dummy/base.py", line 13, in complain
raise ImproperlyConfigured, "You haven't set the DATABASE_ENGINE setting yet."
この質問はここからのフォローアップ質問です。その質問には何の答えも得られなかったので、私はさらに試み続けました。問題はこの小さな尺度に要約されています。