我已经在Python中为Google App Engine构建了一个Web应用程序.这是成熟的代码,我已经运行了很多次没有任何问题.然而,当我今天早上做出一些改变时,整个地方都出现了神秘的空白错误.在弄清整个文本文件(在TextWrangler中)并将我的设置更改为自动扩展选项卡之前,我弄清楚了发生了什么并手动删除了一些.我想我已经赶走了所有的错误.当我在我的文件上运行python -m tabnanny时,我没有报告错误.
但是,在之前的大量代码中出现了一个新的错误.我不知道错误是在类或它正在调用的类中,所以我在下面包含了一大块代码.GAE日志中的错误消息如下:
<type 'exceptions.NameError'>: name 'self' is not defined
Traceback (most recent call last):
File "/base/data/home/apps/lpflipstud/1.354982193405081399/example.py", line 99, in <module>
class HomeHandler(BaseHandler):
File "/base/data/home/apps/lpflipstud/1.354982193405081399/example.py", line 103, in HomeHandler
logging.info(self.current_user)
Run Code Online (Sandbox Code Playgroud)
这是代码.它是facebook为Google App Engine界面提供的示例代码的略微修改版本,带有facebook应用程序:
class BaseHandler(webapp.RequestHandler):
#Provides access to the active Facebook user in self.current_user.
#The property is lazy-loaded on first access, using the cookie saved
#by the Facebook JavaScript SDK to determine the user ID of the active
#user. See http://developers.facebook.com/docs/authentication/ for
#more information.
@property
def current_user(self): …Run Code Online (Sandbox Code Playgroud) 我在java运行时使用objectify on appengine.我也通过@Cached注释为几个实体使用memcache.我的问题是在将对象放入数据存储区时对象的行为.放置具有@Cached注释的实体时,是否更新了memcache?或者该实体的任何现有缓存数据现在与数据存储区不同步.当我将一个对象放入数据存储区时,我想更新内存缓存,但是我不知道objectify默认是否这样做,或者我是否需要自己编写.如果更新了内存缓存,那么我的数据的到期时间(或没有到期时间)要高得多.仅供参考我不使用交易.
我在谷歌应用引擎上很新.所以gyus请帮我解决这个问题.最终,我的代码是错的,但我不能在哪里?这里的代码:
import os
import urllib
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp.util import run_wsgi_app
import datetime
import wsgiref.handlers
from google.appengine.api import mail
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp \
import template
class MyUsers(db.Model):
firstname = db.StringProperty(
required=False)
lastname = db.StringProperty(
required=False)
email = db.StringProperty(
required=False)
zipcode = db.StringProperty(
required=False)
file = db.BlobProperty(
required=False)
idea = db.TextProperty(
)
ask = db.StringProperty(
required=False)
contact_back = db.StringProperty(
required=False)
phone = db.StringProperty(
required=False) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google App Engine中的此代码在Java中运行声音文件:
@UiHandler("btnRecite")
void btnRecite(ClickEvent event) throws Exception{
URL soundFile =new URL( "http://everyayah.com/data/Ghamadi_40kbps/audhubillah.mp3");
AudioInputStream ais = AudioSystem.getAudioInputStream(soundFile);
AudioPlayer.player.start(ais);
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外
GAE:javax.sound.sampled.AudioInputStream is not supported by Google App Engine's Java runtime environment
Run Code Online (Sandbox Code Playgroud)
任何想法可能是什么原因
谢谢
我一直在尝试获取请求URL如下
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
print self.request.get('url')
app = webapp2.WSGIApplication([('/.*', MainPage)], debug=True)
Run Code Online (Sandbox Code Playgroud)
当请求是
http://localhost:8080/index.html
Run Code Online (Sandbox Code Playgroud)
它给了我类似的东西
Status: 200 Content-Type: text/html; charset=utf-8 Cache-Control: no-cache Content-Length: 70
Run Code Online (Sandbox Code Playgroud)
我需要得到的是类似的东西
index.html
Run Code Online (Sandbox Code Playgroud)
编辑:这样我就可以检查字符串并相应地显示正确的html /模板文件.
我已经检查过Request文档并尝试了很多替代方案但我似乎无法找到解决方案.我对网络开发很陌生.我错过了什么?
我正在创建一个用于货币兑换的应用程序.将美元兑换成外币.我创建了一个应用程序,但问题是我必须手动更新货币的汇率.无论如何,他们的应用程序可以让费率自动更新.这是我的应用程序的Java代码.查看我的函数中的ConvertUSDtoEuro()和ConvertEurotoUSD().我希望一切都很清楚.
package com.example.currencyconverter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
public class MainActivity extends Activity
{
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.editText1);
}
public double ConvertUSDtoEuro(float USD)
{ return ((USD * .667)); }
public double ConvertEurotoUSD(float Euro)
{ return ((Euro * 1.11)); }
public void onClick (View view)
{
switch (view.getId())
{
case R.id.button1:
RadioButton USDButton = (RadioButton) findViewById(R.id.radio0);
RadioButton EuroButton = (RadioButton) findViewById(R.id.radio1);
float inputvalue = Float.parseFloat(text.getText().toString()); …Run Code Online (Sandbox Code Playgroud) 我正在阅读GAE数据存储区中的行,我想按字母顺序对它们进行排序.
假设我有这样的事情:
key name description sequence
===========================================
ASD.. maths1 it is maths chap21.1
ASD.. maths2 it is maths chap21.10
ASD.. maths3 it is maths chap21.2
Run Code Online (Sandbox Code Playgroud)
我希望结果按字母顺序排序在序列字段上,如下所示:
key name description sequence
===========================================
ASD.. maths1 it is maths chap21.1
ASD.. maths3 it is maths chap21.2
ASD.. maths2 it is maths chap21.10
Run Code Online (Sandbox Code Playgroud) 每天 19:00 使用 Google 应用引擎中的 Flask 框架发送电子邮件。
我的程序运行得很好,但我的应用程序故意生成
View function did not return a response
Run Code Online (Sandbox Code Playgroud)
这个错误。
下面是我的代码。
在
应用程序.yaml
- url: /sendemail
script: send_email.app
login: admin
Run Code Online (Sandbox Code Playgroud)
在
cron.yaml
cron:
- description: Send Email
url: /sendemail
schedule: every day 19:00
Run Code Online (Sandbox Code Playgroud)
在
send_email.py
@app.route('/sendemail', methods=('GET', 'POST'))
def sendemail():
toaddr = "email@email.com"
body = "MYBODY"
to_email = mail.Email(toaddr)
from_email = mail.Email(SENDGRID_SENDER)
content = mail.Content('text/html', body)
subject = "SUBJECT"
message = mail.Mail(from_email, subject, to_email, content)
Run Code Online (Sandbox Code Playgroud)
正如您在上面的 send_email.py 中看到的那样,它不返回任何内容,因此我的应用程序返回错误,但发送电子邮件的效果非常好。
那么如何才能在不出错的情况下实现发送电子邮件呢?
我对 Flask 和 Web 编程很陌生,所以我只想用 …
为看似显而易见的问题道歉,但我认为答案可能会对其他人有所帮助。我一辈子都找不到Google App Engine VM(Cloud Shell)内文件路径上的文档,从中可以找到要从中提供服务的静态文件。我需要从私有github存储库中获取最新的上游更改。
请注意,我在VM的其他位置导航,甚至重新启动会话也没有使我进入VM内的默认项目根路径,正如我期望的那样。