我对以下问题感到困惑.
我正在使用Flask,flask-pymongo扩展,mongodb版本v2.2.0-rc0,pdfile版本4.5
这是我的路线:
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':id})
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud)
id是msg集合中文档的有效_id,但总是返回None.
我试过了:
有什么想法吗?
更新:这个完整的URL如何:
http://127.0.0.1:8000/check/5030b628895b800de1a9a792
Run Code Online (Sandbox Code Playgroud)
UPDATE2:
我发现了类似的问题(回答)红宝石.不知道我怎么能把它翻译成python,我需要什么样的导入/模块?
更新3:我试过:
import bson
@app.route("/check/<id>")
def check(id):
id2="'"+id+"'"
doc=conn.db.msg.find_one({'_id':bson.objectid(id2) })
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud)
但是我得到TypeError:'module'对象不可调用(它也不能用于id)
当我达到1500时,我会建议一个沮丧的标签:-S
UPDATE4:
最后我把它拿起来跑了!
这是我的解决方案:
import bson
@app.route("/check/<id>")
def check(id):
doc=conn.db.msg.find_one({'_id':bson.ObjectId(oid=str(id))})
return render_template('base.html',name=doc)
Run Code Online (Sandbox Code Playgroud) 我用这个把头撞到了墙上:
基本上我想要的是从这个元组列表中删除""项:
[('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
Run Code Online (Sandbox Code Playgroud)
并获得以下新列表:
[('650', '724', '6354'), ('650', '723', '4539')]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我将R升级到v2.14.0,随着升级,我决定将标准软件包存储库移至Dropbox,因此笔记本电脑和台式机始终处于同步状态.我设置我R_LIBS=/Dropbox/ToolBox/R/packages的.Renviron,当打开Rstudio或R.app(mac)时,我得到以下命令:
> Sys.getenv("R_LIBS")
[1] "/Dropbox/Toolbox/R/packages"
> .libPaths()
[1] "/Dropbox/Toolbox/R/packages"
[2] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
[3] "/Applications/RStudio.app/Contents/Resources/R/library
Run Code Online (Sandbox Code Playgroud)
但是当我在.Snw(Textmate + Sweave)中运行相同的命令时,我得到:
> Sys.getenv("R_LIBS")
[1] ""
> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
Run Code Online (Sandbox Code Playgroud)
正如你可以在上面看到,当我从Sweave调用R使得只挑选了标准repository.I创建Renviron.site,Rprofile.site阅读help(Startup)下面类似的问题Q1和Q2没有成功.
有人可以解释一下如何解决这个问题吗?
更新:当我从R中扫描我的.Snw时,它会选择所有正确的文件夹.我不确定为什么从textmate完成后会做出不同的事情.
有任何想法吗?