也许我首先应该对我想完成的事情有所了解,因为可能会有更好的解决方案。
我有一个使用Django的网络应用程序,用于管理媒体(录制的电视,电影等)。该Web应用程序允许您将元数据添加到媒体中,例如您在每个用户的基础上观看的内容,还可以执行搜索并与Web资源同步以获取有关放映时间等信息。
实际的媒体文件位于文件服务器上,Django系统可以访问该文件服务器来扫描和更新其数据库。
我也有几个媒体播放系统,它们可以播放文件服务器中的媒体文件,并且前端使用Python编写。
该前端需要元数据来显示用户界面。当前,我正在使用Django创建以XML格式显示数据的视图,然后使用urllib2在前端检索页面。
我真正想要的是一种访问Django ORM的方法,该方法可以直接从媒体播放系统管理媒体元数据,这样我就可以拥有完整的ORM。
所以,最后回到我的问题。有没有办法以独立方式远程访问ORM?我想我可以将模型复制到前端系统,然后将它们全部直接访问数据库,但是必须有一个更优雅的解决方案。
您真的需要客户端中ORM的全部功能吗?如果您不这样做,那么某种形式的Web服务将是我的最爱。REST是当前的宠儿,请参见django-rest-interface。
否则,我看不到优雅的出路。您可以通过挑选查询集和结果并通过一些API来扔掉它们,从而避免直接建立数据库连接的需要,但这可能比它的价值还要麻烦。