为什么(例如web2py)从字典中的控制器返回数据而不是变量(参见Rails)?
例如:
return dict(sape=4139, guido=4127, jack=4098)
Run Code Online (Sandbox Code Playgroud)
而不是(这是Rails的方式)
@var1 = "jello"
@var2 = "hihi"
Run Code Online (Sandbox Code Playgroud)
使用字典而不是普通变量(速度/代码方式)是否有任何优势?
更新:上面的方法实际上是创建字典的正确方法(至少在Python 2.6.1中).另一种方式(许多人说它是正确的)
return {"var1": "jello", "var2": "hihi"}
Run Code Online (Sandbox Code Playgroud)
python框架并没有大量使用它.
从Python的文档:"当键是简单的字符串时,有时更容易使用关键字参数指定对:"
dict(sape=4139, guido=4127, jack=4098)
Run Code Online (Sandbox Code Playgroud) 任何人都可以建议如何托管web2py应用程序?我知道谷歌应用引擎是一个选项,但如果我使用它可以让它显示为我自己的域名?任何其他托管选项更好?
我很感激帮助
贾森
我正在看一些Web2py代码.
变量tokens是某种字符串列表.为了更精确,它被定义为tokens = form.vars.name.split(),其中form.vars.name是一个字符串.
我的问题涉及以下指示:
query = reduce(lambda a,b:a&b,[User.first_name.contains(k)|User.last_name.contains(k) for k in tokens])
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
我知道lambda a,b:a&b定义的函数a和b.什么是a&b?
是Web2py特有的contains方法User.first_name吗?或者它是否存在于标准Python中?
这个|运营商是User.first_name.contains(k)|User.last_name.contains(k)什么?
这个reduce功能有什么作用?
我有一个名为的表User,在Web2Py中我会得到符合某些ID的用户(1,5,11,16).
我是否必须自己编写SQL查询,或者使用Web2Py样式查询可以优雅地完成它.
我需要使用将连接到MySQL的python构建一个简单的管理webapp.
Web应用程序需要通过Web服务公开一些API,以供其他Web应用程序和Android/iPhone客户端使用.我需要帮助进行技术选择.
我很感激Django,Zope3和Web2Py之间的建议和过去经验评论比较.我主要关注最小的学习曲线和开箱即用的WebService Server支持.
有关SOAP与JSON或REST的建议.考虑到智能手机客户端,最具跨平台兼容性的是什么.我没有在Django网站上看到SOAP支持.
在阅读web2py手册时,我遇到了以下情况:
'一旦注册了新用户,就会创建一个包含该用户的新组.新用户的角色通常是"user_ [id]",其中[id]是新创建的id的id.
这让我想知道为什么Web2py这样做.更具体地说,为什么我们需要创建这么多看似冗余的组,其中每个组只包含一个用户?例如,'user_2'为了包含具有id的用户而创建一个名为created 的组的目的是什么'2'?
如果不存在特定的理由,是否有任何方法可以禁用为个人用户自动创建唯一组的默认行为,以便可以单独创建更有意义的组?谢谢.
我正在尝试在命令行运行脚本,该脚本使用带有以下命令的模型:
c:\web2py>python web2py.py -M -N -S automate -R applications/automate/modules/eventserver.py
Run Code Online (Sandbox Code Playgroud)
但我一直收到错误:
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2011
Version 1.99.7 (2012-03-04 22:12:08) stable
Database drivers available: SQLite3, pymysql, pg8000, IMAP
Traceback (most recent call last):
File "c:\web2py\gluon\shell.py", line 206, in run
execfile(startfile, _env)
File "applications/automate/modules/eventserver.py", line 6, in <module>
deviceHandler = devicehandler.DeviceHandler()
File "applications\automate\modules\devicehandler.py", line 10, in __init__
self.devices = self.getActiveDevices()
File "applications\automate\modules\devicehandler.py", line 18, in getActiveDe
vices
print db
NameError: global name 'db' is not defined
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么? …
我需要管理由web2py web界面控制的一些计划任务.为此,我想利用web2py的调度程序.我想到的第一件事是使用调度程序函数内的子进程模块运行shell脚本,但我不确定它是否是正确的方法.有最好的做法吗?你有什么建议吗?
我想重用别人写的一些代码.
代码是对象数组及其属性的长迭代.数据来自内置函数.
我通过ajax(作为JSON)提供相同的数据结构,因此python(web2py)将其转换为dict.
为了保持使用相同的长代码,我需要一种方法将当前元素从字典转换为对象.
原因:属性被写为Obj.prop和没有Obj["prop"].
怎么做到呢?
我正在使用web2py,我一直在查看源代码,以便更好地理解.多次我见过如下作业
# in file appadmin.py
is_gae = request.env.web2py_runtime_gae or False
Run Code Online (Sandbox Code Playgroud)
如果request.env.web2py_runtime_gae为true,则False无关紧要.如果request.env.web2py_runtime_gae为false,则表达式变为false.
并且:
# in file appadmin.py
if False and request.tickets_db:
from gluon.restricted import TicketStorage
Run Code Online (Sandbox Code Playgroud)
永远不会评估和子句的第二部分,因为False和x总是返回false.
那么为什么会这样做呢?
web2py ×10
python ×7
dictionary ×1
django ×1
dns ×1
hosting ×1
logic ×1
object ×1
reduce ×1
sql ×1
web-hosting ×1
web-services ×1
zope3 ×1