我已经在网上关注了许多教程和示例来设置和使用django活塞.它们都完美无缺,直到我尝试集成oauth身份验证.我一直在反对以下例子:
http://blog.carduner.net/2010/01/26/django-piston-and-oauth/ http://github.com/clemesha/django-piston-oauth-example
然而,这两者似乎都未能包含所需的oauth模板和视图的示例.我很可能没有正确实现它,所以任何建议都会非常有用.
综上所述.我有一个工作的django活塞设置(返回/插入数据).我正在努力的是集成oauth身份验证的权威指南.即我需要安装什么,我需要创建哪些视图,设置,网址模式和模板?
谢谢
我们将我们的API从Django - Piston移植到Django-TastyPie.一切顺利,'直到我们达到这个目的:
应用程序的urls.py
url(r'^upload/', Resource(UploadHandler, authentication=KeyAuthentication()), name="api-upload"),
url(r'^result/(?P<uuid>[^//]+)/', Resource(ResultsHandler, authentication=KeyAuthentication()), name="api-result")
Run Code Online (Sandbox Code Playgroud)
这使用活塞,所以我们想把它改成适合TastyPie的东西
url(r'^upload/', include(upload_handler.urls), name="api-upload"),
url(r'^result/(?P<uuid>[^//]+)/', include(results_handler.urls), name="api-result")
Run Code Online (Sandbox Code Playgroud)
但我们坚持这个错误
使用参数'()'和关键字参数'{'uuid':'fbe7f421-b911-11e0-b721-001f5bf19720'}'找不到'api-result'.
和结果的调试页面:
使用MelodyService.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
^ melotranscript/^ upload/^ melotranscript/^ result /(?P [^ //] +)/ ^(?Presultshandler)/ $ [name ='api_dispatch_list'] ^ melotranscript/^ result /(?P [^ // ] +)/ ^(?Presultshandler)/ schema/$ [name ='api_get_schema'] ^ melotranscript/^ result /(?P [^ //] +)/ ^(?Presultshandler)/ set /(?P\w [\ w /; - ]*)/ $ [name ='api_get_multiple'] ^ melotranscript/^ result /(?P [^ //] +)/ ^(?Presultshandler)/(?P\w [\ w/- ]*)/ $ [name ='api_dispatch_detail'] …
在过去的几年里,我一直在尝试将一些关于noSQL(couchDB,mongoDB,Redis ......)的"酷"的东西用于实际应用.
我已经习惯用Django编写应用程序,并开始使用Play!当Java是唯一可接受的部署选项时(并且也享受它).两者都有模块可以工作,例如MongoDB,django也有nonrel.但我从来没有觉得需要没有SQL.
直到我终于找到了我认为是面向文档的存储的一个很好的用例,比如MongoDB.
假设我们必须管理一些复杂项目的排序和跟进(无论如何).这些项目可能有很多不同的属性,例如.过度简化我们可以:
如您所见,每个对象都可以有几个可以按类型约束的属性.
在我通常使用ORM的RDBMS中,我会定义一个"产品"模型,然后继承两个模型,一个冰箱和一个烤箱.如果一个冰箱在一段时间之后再获得一个属性,我会修改模型 - 因此,模式 - ,运行迁移,并添加一列.
我能想到的noSQL解决方案是:
但是,我在了解如何失败不同的(容易)的发展将务实地仍然使用与正确的适配器(尤其是DODB)框架ORM切换到NoSQL的解决方案.
假设我通过mongodb-engine将Django与MongoDB一起使用.
我仍然使用相同的ORM,所以我仍然将这些对象描述为模型,列出所有属性.因此,ORM完成了同样的工作!如果模型发生变化,生成迁移的成本对于ORM(特别是像South这样的东西)非常有限,没有什么需要自己学习新技术.
DODB可能有/其他/有优势,有些特定于MongoDB(可伸缩性,数据处理,可能是性能)但是......我正在描述的确切用例和问题怎么样?
我很可能错过了一点,所以这里有真正的问题:
对于这个特定的用例:
我理解回答这些问题可能是部分主观的,所以你可以完全了解noSQL和SQL理论,并存储ORM; 存在从库存ORM到noSQL DB的良好桥梁.让我们假设我们正在讨论MongoDB的这个用例作为noSQL替代方案.
但是有一个更普遍的问题 - 这是SO帖子的核心问题:
(从编程和维护的角度来看,"少用",性能和类似标准是另一回事,需要精确的产品对产品比较)
[编辑]
我也想要了解的是,在切换到noSQL时使用ORM是不是更好.拥有更多"动态"模型会更好,例如.我可以有一个表格来描述冰箱和烤箱模型是什么(字段),代码中的冰箱和烤箱模型可以动态构建它们的视图(用于编辑的表单和用于显示的列表).
[编辑]:这些是在这里展示我的研究,但也澄清我所要求的不是关于noSQL与SQL的通用
编辑 和链接:
我已经使用了pip和virtualenv(实际上有时候仍然喜欢通过SVN存储库组织良好的组合,明智地使用svn:externals和动态sys.path).
但是这次安装新的服务器我想以正确的方式做事.
所以我去了pip安装页面,它说:
使用pip的推荐方法是在virtualenv中,因为每个virtualenv都会自动安装pip.这不需要root访问权限或修改系统Python安装.[...]
然后我转到virtualenv安装页面,它建议:
您可以使用pip install virtualenv安装virtualenv,或者使用pip install virtualenv == dev安装最新的开发版本.你也可以使用easy_install [...]
而pip应该取代easy_install,当然:)
当然,他们都解释了所有可供选择的安装方式.
但是...... 应该先走哪一个? 我应该支持全系统pip吗?
我看到了思考的主要原因,但可能还有其他人
如果我希望每个人都有可用的虚拟环境,我可能只需安装一个系统范围的pip(例如,使用ubuntu sudo aptitude install python-pip然后使用它来安装virtualenv sudo pip install virtualenv).
编辑另一个思考的理由:virtualenvwrapper安装说明(但不是文档)说:
注意为了使用virtualenvwrapper,您必须单独安装virtualenv.
不完全确定"分开"是什么意思(我从未注意到).
否则,哪一个应该先行,它真的会有所作为吗?
最接近的问题(和答案)是下面的第一个(特别是看@elarson答案),第二个看起来过于复杂:
但是我觉得这完全没有回答我的问题:系统范围与本地问题,但也应该pip或virtualenv首先(为什么他们将每个发送到另一个开始!!!)
好的,所以我正在编写一个国际 Django 应用程序,并且进行本地化的文档很棒,但我似乎无法在任何地方找到受支持语言的完整列表。他们在哪里?我真正想做的是使用列表来填充模型上的选择,所以如果有办法以编程方式获得它,那将是最好的。
谢谢!
我正在寻找主持我在Play Framework上完成的简单项目的最佳方式.Play的开发人员建议只将其部署为独立的,而不是使用像Tomcat这样的Web应用程序容器,尽管可以这样做.
有没有好的网络主机可以作为一个独立的东西托管我的播放应用程序?
我猜这可能意味着获得VPS,但我希望有更便宜的托管网站,而不是每月40美元的VPS.
我意识到这个问题可能会超出堆栈溢出的范围,但我认为这仍然是一个可行的问题; 我正在寻找部署我编写的代码的最佳方式,以供互联网上的任何人使用.
我刚开始使用Play框架和Scala.body:=> Html在Play框架中是什么意思?谢谢.
我正在寻找的是快速(干!)为给定模型生成表单的能力,但是使用CRUD表单/模型的控制方式较少; 例如,通过能够使用没有完整的crud控制器/路由的crud标签,或通过强烈定制它们.
让我通过一个例子来解释.
我有一个模型A而不是链接(ManyToOne)到2个模型,B和C.
class public A extends Model {
public String name;
@ManyToOne
public A a;
@ManyToOne
public B b;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够写出以下路线:
/A/{id}/B/ somecontroller
/A/{id}/C/ some(other?)controller
Run Code Online (Sandbox Code Playgroud)
甚至更好:
/A/{id}/{submodel}/ somecontroller
Run Code Online (Sandbox Code Playgroud)
并在相应的html视图中可以执行以下操作:
<div>object.name</div>
#{form action:@save(object.b._key()), enctype:'multipart/form-data'}
#{crud.form object.b /}
<p class="crudButtons">
<input type="submit" name="_save" value="&{'crud.save', type.modelName}" />
<input type="submit" name="_saveAndContinue" value="&{'crud.saveAndContinue', type.modelName}" />
</p>
#{/form}
Run Code Online (Sandbox Code Playgroud)
当"对象"不是"B"或"C"的实例,但"一",我可以告诉#{crud.form /}它应该映射哪个模型(在这种情况下,"B")
有没有办法实现类似的东西?
问题可以解决:
#{form MODEL} #{/form}标签?!或者,通过能够以某种方式定制更多的CRUD,例如.
我担心我无法通过简单地覆盖模型CRUD控制器来实现这个目标,也许我错了,但除了阅读CRUD代码(我正在做)之外,官方文档对于哪些方法可以被覆盖有点限制如何...
相关:如何在playframework中为模型创建html表单
我也刚刚发现这个google邮件线程似乎进入了custom-crud方向.我希望能为这种典型需求提供更加开箱即用的解决方案......
由于所有类型的缺失依赖项,我无法这样做(主要是,我认为问题出在依赖于AppEngine上没有的django东西的身份验证代码中)
我想知道是否有人修补\ forked活塞让它在AppEngine上工作?
假设我必须为我的公司写几个中小型库.
以pythonic方式使用Java方法并使用通用高级包(ahem,模块)为所有这些方法添加前缀(例如实现以下结构)是否有意义:
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
Run Code Online (Sandbox Code Playgroud)
或者更好的是简单地去:
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
Run Code Online (Sandbox Code Playgroud)
我看到大部分时间都使用了第二种方法,但我正在寻找确认(或不是),这是要走的路.
在PEP 008中,我在这方面找不到任何东西,旁边:
Python库的命名约定有点混乱,所以我们永远不会完全一致[...]
然后我们只获得模块和类命名指示,以及不鼓励相对导入的事实.
事实上绝对进口是决定你如何组织你的图书馆的重要事实(我不是在这里讨论是否避免相对进口是好还是坏).
我确实喜欢用你的所有库命名空间的Java方法,但我觉得它不是pythonic ...建议的方法是什么?
PS.虽然一般来说"最佳实践"问题在SO上被认为是主观的,但在Python中,PEP的存在使我们认为它们非常客观!虽然答案可能是......但是组织你的图书馆并不是最好的做法.
我有一个在nginx和php-fpm上运行的drupal站点,在多个服务器之间进行haproxy平衡.
我为haproxy设置了两个服务:http和https.
如果我去http://subdomain.domain.com,它工作正常.
如果我去https://subdomain.domain.com,它也可以正常工作.如果我然后回到http它现在重定向到https.这发生在firefox和chrome中,但不是在IE中.
是否有某些设置可以自动重定向到https,如果它知道它存在的话?也许如果设置了安全标头?
我试过看LiveHTTPHeaders,但此时只显示https部分.
我试过看Chrome,它说:
t=1312233405229 [st= 0] +REQUEST_ALIVE [dt=192]
t=1312233405229 [st= 0] URL_REQUEST_START_JOB [dt= 0]
--> load_flags = 1114241 (ENABLE_LOAD_TIMING | MAIN_FRAME | VALIDATE_CACHE | VERIFY_EV_CERT)
--> method = "GET"
--> priority = 0
--> url = "http://subdomain.domain.com/"
t=1312233405229 [st= 0] +URL_REQUEST_START_JOB [dt= 0]
--> load_flags = 1114241 (ENABLE_LOAD_TIMING | MAIN_FRAME | VALIDATE_CACHE | VERIFY_EV_CERT)
--> method = "GET"
--> priority = 0
--> url = "http://subdomain.domain.com/"
t=1312233405229 [st= 0] URL_REQUEST_REDIRECTED
--> location …Run Code Online (Sandbox Code Playgroud) 我有一个使用Python实现的Web服务的iPhone应用程序,使用Django和Piston,通过WSGI在Apache服务器上运行.
有时,应用会在呼叫结束前关闭与服务器的连接.当它这样做时,它会导致:
[Tue Sep 06 11:29:46 2011] [error] [client 207.35.164.99] mod_wsgi (pid=820): Exception occurred processing WSGI script 'myscript.wsgi'.
[Tue Sep 06 11:29:46 2011] [error] [client 207.35.164.99] IOError: failed to write data
Run Code Online (Sandbox Code Playgroud)
出现在我服务器的错误日志中.
我可以通过不明确关闭连接来"修复"应用程序中的问题,但只是让它完成下载并忽略结果.但是,如果可能的话,我想在服务器端修复此问题.我该怎么做?
我正在使用活塞和Django.任何时候我的处理程序代码都有错误,我在http响应中得到了一个简单的,仅文本描述的错误描述,这给了我更少的信息,当Django报告错误时会做的事情.如何以这种方式阻止Piston捕获错误?
django ×7
python ×5
apache ×1
crud ×1
drupal ×1
haproxy ×1
installation ×1
mod-wsgi ×1
nginx ×1
nosql ×1
oauth ×1
orm ×1
php ×1
pip ×1
scala ×1
tastypie ×1
translation ×1
virtualenv ×1
web-hosting ×1