这对我很有意思,我已经检查过了.正如您所读,NewRequest订阅者在每个请求上被调用3次(或者在启用debug_toolbar的BeforeRender情况下调用7次...),而每个请求调用一次订阅者(在启用debug_toolbar的情况下调用> 30次).
所以,如果我想通过事件将mongodb连接到我的项目NewRequest,每个请求将完成3次...
这是为什么?服务器为什么要在每个请求上执行相同的工作3次?
提前致谢!!!
我的朋友有一个使用Pyramid框架构建的网站,并使用MongoDB存储数据.如果我想构建iPhone应用程序,如何从该数据库访问数据?
我知道Obj-C并且已经构建了简单的iOS应用程序,但它们都没有使用非本地数据.我用Google搜索但没有取得好成绩.我只是不知道从哪里开始.任何关于相关问题的好教程或示例代码都将受到赞赏!
newb to python和pyramid/pylons.用户登录后,我想在我的数据库中获取一些数据并将其存储在会话变量中.我已经能够用remember()存储用户的登录ID.使用request.session,我可以设置一个会话变量,只要它是一个字符串,但如果我尝试从我的数据库中检索一些东西,我会收到一个错误:"BadPickleGet: ".这是我的观点的相关部分:
if 'form.submitted' in request.params:
login = request.params['login']
password = request.params['password']
if User.check_password(login, password):
headers = remember(request, login) # ie dave
session = request.session
#session['myvar'] = 'somethinghardcoded' # this works!
session['myvar'] = User.myfield # this doesn't work!
session.save()
return HTTPFound(location=came_from, headers=headers)
Run Code Online (Sandbox Code Playgroud) 我在development.ini上做了一些改动.如何再次运行它,以便看到变化?我跑的时候
../bin/pserve development.ini
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,即广告已经被拍摄?
我在views.py文件中将此作为我的主页的视图配置:
@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
if 'form.submitted' in request.params:
name= request.params['name']
body = request.params['body']
page=Page(name,body)
DBSession.add(page)
return HTTPFound(location=request.route_url('view_page',pagename=name))
return {}
Run Code Online (Sandbox Code Playgroud)
此外,这是edit.pt模板中的表单:
<form action="/view_page" method="post">
<div>
<input type="text" name="name"/>
</div>
<div>
<input type="text" name="body"/>
</div>
<label for="stl">Stl</label>
<input name="stl" type="file" value="" />
<input type="submit" name='form.submitted' value="Save"/>
</form>
Run Code Online (Sandbox Code Playgroud)
我也在我的init .py文件中
config.add_route('home_page', '/')
config.add_route('view_page', '/{pagename}')
Run Code Online (Sandbox Code Playgroud)
现在,当我提交表单时,它只是尝试转到localhost:6543/view_page.这将返回404,因为没有view_page资源或通向它的路由.相反,我希望它转到localhost:6543 /(我刚刚创建的页面的名称,也就是表单中的第一个输入框).我怎样才能做到这一点?
编辑:我担心其他东西可能会告诉它路由到view_page,因为我甚至尝试将其更改为
return HTTPFound(location=request.route_url('front_page',pagename=name))
Run Code Online (Sandbox Code Playgroud)
它仍然转到/ view_page.没有名为front_page的路由,所以我至少会怀疑它会抛出错误.
另外,如果你能告诉我你在哪里找到这些信息,我将非常感激.我一直在关注http://docs.pylonsproject.org/projects/pyramid/en/1.4-branch/api/request.html?highlight=request.route_url#pyramid.request.Request.route_url但似乎无法从中找到用处.
编辑:我应该使用资产规范而不是路径名吗?所以
return HTTPFound(Location=request.route_url('tutorial:templates/view.pt','/{pagename}'))
Run Code Online (Sandbox Code Playgroud)
另外,我正在阅读这篇文章,它似乎对语法非常有帮助:http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#urldispatch-chapter
我正在使用 pyramid_exclog 记录异常并将这些异常作为电子邮件发送。我正在使用 Amazon aws SMTP 发送电子邮件。但我收到以下错误:
SMTPAuthenticationError: (530, 'Must issue a STARTTLS command first')
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码:
[handler_email_exc_handler]
class = handlers.SMTPHandler
args = (('email-smtp.us-east-1.amazonaws.com', 587), 'no-reply@company.com', ['me@company.com'], 'Company Exception' ,('<username>','<user_key>'),None)
level = ERROR
formatter = exc_formatter
Run Code Online (Sandbox Code Playgroud)
据我所知,aws 凭据没有任何问题,因为我使用它们通过 Thunderbird 发送邮件。
这是我第一次尝试设计Web应用程序.我为SQLAlchemy数据库创建了一个CRUD操作API.我现在正在尝试使用Pyramid设计一个RESTful Web框架来支持这个DB及其所有实体.
我一直在努力研究如何进行PUT(更新).我知道我还需要纳入某些条件(例如Code 202).我不确定如何使用PUT处理对象替换.视图配置中的方法有点令人困惑,我相信我正在遵循db CRUD操作.
其次,我认为必须通过查找所有资源{id}.我相信我的get_user方法是正确的. User_id保存用户的所有信息db......因此,如果a user被查找,那么id我不需要拥有所有其他信息(参见delete_user方法).
我已经阅读了一些关于设计RESTful设计的精彩教程,但鉴于我是自学成才,我仍在苦苦挣扎.真的很感谢您的帮助!
_ init _.py(URIs):
config.add_route('post_user', '/users') # POST (HTTP) / CREATE (CRUD)
config.add_route('get_user', '/users/{id}') #GET (HTTP) / RETRIEVE (CRUD)
config.add_route('put_user', '/users/{id}') # PUT (HTTP) / UPDATE (CRUD)
config.add_route('delete_user', '/users/{id}') # DELETE (HTTP) / DELETE (CRUD)
Run Code Online (Sandbox Code Playgroud)
views.py(查看配置 - RESTful):
@view_defaults(renderer='json')
class RESTView(object):
api = ConvenienceAPI() # CRUD API for database
def __init__(self, request):
self.request = request …Run Code Online (Sandbox Code Playgroud) 我正在创建一个学校管理系统,负责处理教师和学生的文件上传和下载.此外,将有大量的数据库写入和读取(例如,学生正在学习哪些课程,学生的成绩等等)
我希望在前端使用AJAX模型使用python更新动态网页.
在后端我想使用python进行文件处理,数据库读取向用户显示其内容,数据库写入用户在Web应用程序和内存缓存上更新他/她的内容.
我正在使用的堆栈是......
CentOS + Hadoop + Hypertable + Python
我目前正在阅读金字塔文档,经过几章后,我看不到金字塔如何帮助我完成我在PHP中可以做的事情,如果它确实这样做,为什么这么复杂?
金字塔是正确的工具,还是我应该使用web2py?
如果金字塔是最好的工具,我在哪里可以看到金字塔中构建的复杂应用程序的示例代码.在阅读其他代码时,我倾向于最清楚.
由于缺乏灵活性,Django无法使用
即将开始一个新的Web项目,我不确定选择这两种语言中的哪一种.每个人的优点/缺点是什么?从我粗略的研究来看,金字塔似乎有更陡峭的学习曲线,但有更好的支持网络,而Flask轻量级但是不活跃的开发者社区.
我正在尝试在新机器上运行金字塔项目,我们已经看到了这个奇怪的错误:
pserve pubmanage/production.ini
ImportError: <module 'pubmanage' from '/home/frodeo/pubbery/webapp/pubmanage/__init__.pyc'> has no 'main' attribute
Run Code Online (Sandbox Code Playgroud)
关于发生了什么的任何想法?
我是python和Pyramid的新手.我今天安装了金字塔,我已经在我的mac机器上预装了python 2.7.1.我已经按照官方网站上提到的说明安装了金字塔.我已经在网站上提到了virtualenv和nositepackages,我在我的/users/sreekanth 目录中安装了金字塔
安装后,我尝试了我的第一个示例程序,如文档中所述.
当我尝试运行该程序时,我收到的错误如下所示.
sreekanths-MacBook-Pro:tasks Sreekanth$ ../bin/python2.7 tasks.py
Traceback (most recent call last):
File "tasks.py", line 87, in <module>
config.scan()
File "/Users/Sreekanth/env/lib/python2.7/site-packages/pyramid-1.3a3-py2.7.egg/pyramid/config/__init__.py", line 893, in scan
scanner.scan(package, categories=categories, onerror=onerror)
File "/Users/Sreekanth/env/lib/python2.7/site-packages/venusian-1.0a2-py2.7.egg/venusian/__init__.py", line 95, in scan
invoke(name, ob)
File "/Users/Sreekanth/env/lib/python2.7/site-packages/venusian-1.0a2-py2.7.egg/venusian/__init__.py", line 92, in invoke
callback(self, name, ob)
File "/Users/Sreekanth/env/lib/python2.7/site-packages/pyramid-1.3a3-py2.7.egg/pyramid/view.py", line 210, in callback
config.add_view(view=ob, **settings)
File "/Users/Sreekanth/env/lib/python2.7/site-packages/pyramid-1.3a3-py2.7.egg/pyramid/config/views.py", line 575, in wrapper
return wrapped(*arg, **defaults)
File "/Users/Sreekanth/env/lib/python2.7/site-packages/pyramid-1.3a3-py2.7.egg/pyramid/config/util.py", line 59, in wrapper
result = wrapped(self, …Run Code Online (Sandbox Code Playgroud) 我试图在金字塔中获得以下数组的长度.

当我在下面尝试这个
${outbox_details.details['declined']}
${outbox_details.details['accepted']}
${outbox_details.details['pending']}
Run Code Online (Sandbox Code Playgroud)
我看到我认为在HTML中生成的空数组:

上面的完整标记:
<li>
<img src="..." alt="Denied"/>${outbox_details.details['declined']} denied
</li>
<li>
<img src="..." alt="Accepted"/>${outbox_details.details['accepted']} accepted
</li>
<li>
<img src="..." alt="Pending"/>${outbox_details.details['pending']} pending
</li>
Run Code Online (Sandbox Code Playgroud)
我试过.length和.len,但是他们都在PyCharm中出错了:
${outbox_details.details.length.(['declined'])}
${outbox_details.details.len['declined']}
${outbox_details.details.len(['declined'])}
Run Code Online (Sandbox Code Playgroud)
如果您是Python或后端开发人员,您将如何获得已接受,已拒绝或待定数组的长度?
我正在使用Pyramid框架练习Python.
我myfuncs.py在我的主包文件夹中创建了一个py,其中还有一个带有views.pyinside和Models文件夹的Views文件夹(里面的模型)以及静态文件和模板的其他文件夹(由Pyramid scaffolding创建).
我想在myproject包根目录下的myfuncs.py中定义函数和类,然后从位于各自视图和模型文件夹中的任何视图和模型中访问它们.
我怎样才能做到这一点?我尝试导入但它不起作用.