标签: webapp2

在GAE中尝试使用Set-Cookie添加标头时出错

我试图在我的项目中包含外部python模块来处理会话.它被命名了gmemsess.py.它尝试在响应中添加Set-Cookie标头,并显示错误:

rh.response.headers.add_header('Set-Cookie','%s=%s; path=/;'%(name,self._sid))
AttributeError: HeaderDict instance has no attribute 'add_header'
Run Code Online (Sandbox Code Playgroud)

我阅读文档,一切似乎都没问题,但它不起作用.为什么会出现此错误?此外,我使用webapp2来管理子域.因为这个可能会出现问题吗?

python session google-app-engine webapp2

3
推荐指数
1
解决办法
2189
查看次数

如何使用webapp2在App Engine中正确实现继承

鉴于这个简单的类:

class RenderResponseHandler(webapp2.RequestHandler):
    def __init__(self):
        self.nombreUsuario = obtenerUsuarioTablaUsuario().nombre if obtenerUsuarioTablaUsuario() else None
    def doRender(self, tname='index.html',values = {}):
        temp = os.path.join(os.path.dirname(__file__),
                            'templates/'+tname)
        if not os.path.isfile(temp):
            return False

        self.nombreUsuario = obtenerUsuarioTablaUsuario().nombre if obtenerUsuarioTablaUsuario() else None

        newval = dict(values)
        newval['path'] = self.request.path

        if nombreUsuario:
            url_linktext = 'logout'
        else:
            url_linktext = 'login'

        newval['url_linktext'] = url_linktext
        newval['nombreUsuario'] = nombreUsuario

        template = jinja_environment.get_template(tname)
        outstr = template.render(newval)
        self.response.out.write(outstr)

        return True

    def obtenerPagina(self, pOpcion = None, pMensajeInformacion = None):
        opcion = pOpcion if pOpcion is not None else …
Run Code Online (Sandbox Code Playgroud)

python inheritance google-app-engine webapp2

3
推荐指数
1
解决办法
1169
查看次数

如何使用不同的py文件来处理不同的路由?

我一直在研究python很长一段时间,最近我决定开始学习Web开发方面的事情.我有PHP和PHP框架的经验,以及ruby,其中:

  • 路由在(单个)文件中定义,然后在该文件中,每个路由被分配给一个模型(py文件),该模型将唯一地处理与该路由匹配的传入请求.

如何使用flask AND webapp2实现此目的

我完整地阅读了文档和教程,但它让我非常困惑.我只想要一个文件,其中所有路由和它们应该如何处理都被设置,然后每个路由请求由它自己的模型(python文件)处理.

所有示例都会导致单个文件应用程序.

非常感谢你,真的.请以一种简单的方式亲切地教导.

python flask python-2.7 webapp2

3
推荐指数
1
解决办法
2713
查看次数

获取python/webapp2中的referer url以获取发布请求

我想获取已将请求发送到服务器的referer url.我在appengine上使用webapp2框架.

当我做:

def post(self, slug):
    print self.request 
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

OST /first/person/ HTTP/1.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Language: en-US,en;q=0.8 Cache-Control: max-age=0 Connection: keep-alive Content-Length: 43 Content-Type: application/x-www-form-urlencoded Content_Length: 43 Content_Type: application/x-www-form-urlencoded Cookie: djdt=hide; csrftoken=09f29b2bfe9f51f16581bab7fe7c6f38; sessionid=49b995d954eae8d613cedc3f4e92a796 Host: 127.0.0.1:8080 Origin: http://127.0.0.1:8080 Referer: http://127.0.0.1:8080/person/1/ 
Run Code Online (Sandbox Code Playgroud)

这是清楚可见的 Referer: http://127.0.0.1:8080/person/1/

我只对引用者感兴趣,因此我试过:

referer = self.request.headers['Referer']
            print referer
Run Code Online (Sandbox Code Playgroud)

它给出了输出:

False Status: 200 Content-Type: text/html; charset=utf-8 Content-Length: 0 Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)

获得的一种方法是根据请求进行字符串处理,但我相信会有更标准的东西.

python google-app-engine webapp2

3
推荐指数
1
解决办法
9291
查看次数

GAE Webapp2 - 销毁会话不起作用

或者我是否误解了破坏工作的方式?这是一个示例代码:

class TestHandler(BaseHandler):
    def get(self):
        counter = self.session.get('counter')
        if not counter:
            counter = 0
        counter += 1

        if counter > 5:
            self.auth.unset_session()
        else:
            self.session['counter'] = counter

        return self.response.write ( counter )
Run Code Online (Sandbox Code Playgroud)

会话工作,计数器计数,但任何会话没有被销毁或破坏它不会使值为空?

是否只破坏了像userid和sessionid这样的值,或者我是否完全忽略了这一点?谢谢.

python session google-app-engine webapp2

3
推荐指数
1
解决办法
2344
查看次数

限制来自任何给定IP地址的请求数

我正在开发一个Google App Engine项目(python/webapp2),我有点担心滥用/垃圾邮件我正在创建的服务有大量请求.为了克服这种潜力,我的想法是限制应用程序某些部分在任何给定时间内每个IP地址允许的请求数.我目前的计划如下:

在每个请求我将:

  1. 从标题中获取IP地址
  2. 使用时间戳将此IP地址存储在dataStore中
  3. 删除超过一小时的任何IP地址实体
  4. 计算具有该IP地址的dataStore实体的数量
  5. 如果超过给定限制,则禁止访问

我的问题是:
这是最好的方法吗?我在这里只是一个初学者,我想这样做会有相当多的开销,这可能是一个可能有更好解决方案的常见任务.有没有更好的方法来做这个资源密集度较低的方法?

python google-app-engine webapp2

3
推荐指数
1
解决办法
1361
查看次数

重定向路由严格斜杠

我正在尝试使用严格的斜杠与webapp2重定向路由,我得到这个值错误 -

ValueError: Routes with strict_slash must have a name.
Run Code Online (Sandbox Code Playgroud)

这是我的一条路线的例子 -

RedirectRoute(r'/',handler=IndexHandler,strict_slash=True)
Run Code Online (Sandbox Code Playgroud)

如果我没有strict_slash位,它工作正常.

python google-app-engine webapp2

3
推荐指数
1
解决办法
418
查看次数

如何在Heroku中运行webapp2(appengine)?

这是我的项目文件

Procfile

web: python main.py
Run Code Online (Sandbox Code Playgroud)

requirement.txt

webapp2==2.3
Run Code Online (Sandbox Code Playgroud)

main.py

import webapp2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write("hello")


app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)
Run Code Online (Sandbox Code Playgroud)

仍然heroku发出应用程序错误

我的项目有什么问题?

python google-app-engine heroku webapp2

3
推荐指数
1
解决办法
843
查看次数

如何处理python + webapp2中的多选表单字段?

我有一个用python + webapp2 + jinja2构建的表单.提交的所有值都显示为字符串.其中一个字段是多重选择,只有第一个选定的项目才会被提交.有没有办法让该字段作为所有选定值的数组提交.

我有html模板

<select name="some_list" multiple>
  <option value="red">Red</option>
  <option value="red">Blue</option>
  <option value="red">Yellow</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在python类中

some_list = []
some_list = self.request.get('some_list')
Run Code Online (Sandbox Code Playgroud)

python google-app-engine jinja2 python-2.7 webapp2

3
推荐指数
1
解决办法
1436
查看次数

Webapp2 get_user_by_password引发TypeError:无法连接'str'和'NoneType'对象

我是webapp2的新手.我试图让自定义用户模型与身份验证系统兼容.但每次我的程序调用get_user_by_password时都会引发TypeError:无法连接'str'和'NoneType'对象.我甚至尝试用自定义模型运行某些elses应用程序,它也不会工作.例如,我在这个项目中得到了同样的错误https://gist.github.com/jgeewax/2942374.

Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in   default_dispatcher
return route.handler_adapter(request, response)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__
return handler.dispatch()
File "D:\STUDIA\Semestr 10\Praca Magisterska\Projekty\test\main.py", line 83, in dispatch
response = super(BaseHandler, self).dispatch()
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "C:\Program Files …
Run Code Online (Sandbox Code Playgroud)

python webapp2

3
推荐指数
1
解决办法
2万
查看次数