google 应用引擎上的联系表
contact form on google app engine
我在 google 应用引擎上有一个 运行ning 网站,我想包含一个联系表。
我的 app.yaml 看起来像这样:
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/
upload: www/(.*)
这对于静态文件工作正常,但我如何为联系表单包含 py 文件?
我已经尝试 运行 使用这个 app.yaml 文件:
version: 1
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: jinja2
version: latest
- name: webapp2
version: latest
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/
upload: www/(.*)
- url: /.*
script: www/contactForm.app
但是没有用,电子邮件没有发送
我的 py 文件如下所示:
import webapp2
import jinja2
import os
from google.appengine.api import mail
jinja_environment = jinja2.Environment(autoescape=True,loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
class contact(webapp2.RequestHandler):
template = jinja_environment.get_template('contact.html')
def get(self):
self.response.out.write(self.template.render())
def post(self):
# takes input from user
vorname=self.request.get("vorname")
...
message=mail.EmailMessage(sender="authorized sender address",subject="Kontaktformular")
if not mail.is_email_valid(userMail):
self.response.out.write("Wrong email! Check again!")
message.to="..."
message.body=""" Hallo:
Vorname: %s
...
Text: %s""" %(vorname,...,text)
message.send()
self.response.out.write("Message sent!")
app = webapp2.WSGIApplication([('/contact',contact)], debug=True)
有人知道如何让它工作吗?
您的联系表单处理程序没有被命中,因为您在它之前有一个包罗万象的规则。此外,您的联系表单处理程序需要它自己的 URL 而不是它也有一个包罗万象的模式。试试这个:
version: 1
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: jinja2
version: latest
- name: webapp2
version: latest
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /contact
script: www/contactForm.app
- url: /(.*)
static_files: www/
upload: www/(.*)
此外,由于缺少 tabs/spaces 代码缩进,您的 Python 似乎无效。应该更像:
import webapp2
import jinja2
import os
from google.appengine.api import mail
jinja_environment = jinja2.Environment(autoescape=True,
loader=jinja2.FileSystemLoader(
os.path.join(os.path.dirname(__file__),
'templates')))
class contact(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('contact.html')
self.response.out.write(self.template.render())
def post(self):
# takes input from user
vorname=self.request.get("vorname")
# ...
if not mail.is_email_valid(userMail):
self.response.out.write("Wrong email! Check again!")
message=mail.EmailMessage(sender="authorized sender address",
subject="Kontaktformular")
message.to="..."
message.body=""" Hallo:
Vorname: %s
...
Text: %s""" %(vorname,...,text)
message.send()
self.response.out.write("Message sent!")
app = webapp2.WSGIApplication([('/contact',contact)], debug=True)
我在 google 应用引擎上有一个 运行ning 网站,我想包含一个联系表。 我的 app.yaml 看起来像这样:
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/
upload: www/(.*)
这对于静态文件工作正常,但我如何为联系表单包含 py 文件?
我已经尝试 运行 使用这个 app.yaml 文件:
version: 1
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: jinja2
version: latest
- name: webapp2
version: latest
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /(.*)
static_files: www/
upload: www/(.*)
- url: /.*
script: www/contactForm.app
但是没有用,电子邮件没有发送 我的 py 文件如下所示:
import webapp2
import jinja2
import os
from google.appengine.api import mail
jinja_environment = jinja2.Environment(autoescape=True,loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
class contact(webapp2.RequestHandler):
template = jinja_environment.get_template('contact.html')
def get(self):
self.response.out.write(self.template.render())
def post(self):
# takes input from user
vorname=self.request.get("vorname")
...
message=mail.EmailMessage(sender="authorized sender address",subject="Kontaktformular")
if not mail.is_email_valid(userMail):
self.response.out.write("Wrong email! Check again!")
message.to="..."
message.body=""" Hallo:
Vorname: %s
...
Text: %s""" %(vorname,...,text)
message.send()
self.response.out.write("Message sent!")
app = webapp2.WSGIApplication([('/contact',contact)], debug=True)
有人知道如何让它工作吗?
您的联系表单处理程序没有被命中,因为您在它之前有一个包罗万象的规则。此外,您的联系表单处理程序需要它自己的 URL 而不是它也有一个包罗万象的模式。试试这个:
version: 1
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: jinja2
version: latest
- name: webapp2
version: latest
handlers:
- url: /
static_files: www/index.html
upload: www/index.html
- url: /contact
script: www/contactForm.app
- url: /(.*)
static_files: www/
upload: www/(.*)
此外,由于缺少 tabs/spaces 代码缩进,您的 Python 似乎无效。应该更像:
import webapp2
import jinja2
import os
from google.appengine.api import mail
jinja_environment = jinja2.Environment(autoescape=True,
loader=jinja2.FileSystemLoader(
os.path.join(os.path.dirname(__file__),
'templates')))
class contact(webapp2.RequestHandler):
def get(self):
template = jinja_environment.get_template('contact.html')
self.response.out.write(self.template.render())
def post(self):
# takes input from user
vorname=self.request.get("vorname")
# ...
if not mail.is_email_valid(userMail):
self.response.out.write("Wrong email! Check again!")
message=mail.EmailMessage(sender="authorized sender address",
subject="Kontaktformular")
message.to="..."
message.body=""" Hallo:
Vorname: %s
...
Text: %s""" %(vorname,...,text)
message.send()
self.response.out.write("Message sent!")
app = webapp2.WSGIApplication([('/contact',contact)], debug=True)