1

我正在使用 AngularJS 进入单页应用程序,但不是使用 Node 或类似的,我最喜欢服务器上的 Python。因此,鉴于我对 Pyramid 有点熟悉,我计划使用该pyramid_rpc模块将 JSON 对象返回到客户端应用程序。这一切都很简单,但是,提供包含 AngularJS 初始 AngularJS 应用程序的起始索引文件的最佳方式是什么?通常,静态文件是从目录提供的,但是从根目录static提供文件有什么问题吗?index.html或者我应该使用可调用视图并'/'通过渲染器路由到 html 模板?话虽如此,对于这种应用程序来说,金字塔是不是矫枉过正?任何建议都会很棒。

4

1 回答 1

3

如果您打算返回一些 JSON 响应,那么 Pyramid 是一个不错的选择。但我不建议使用pyramid_rpc。JSON-RPC 是一种用于服务器之间的 RPC 通信的协议。直接的 json 响应更适合大多数客户端(如浏览器),例如只是一组返回 JSON 响应以响应 GET/POST 请求的路由。这也是一个提供服务的好地方index.html,可能有一个很好的http_cache参数来防止客户端过于频繁地请求该页面(当然你可以进一步优化这条路线,但你应该把它留到以后)。

config.add_route('index', '/')
config.add_route('api.users', '/api/users')
config.add_route('api.user_by_id', '/api/users/{userid}')

@view_config(route_name='index', renderer='myapp:templates/index.html', http_cache=3600*24*365)
def index_view(request):
    return {}

@view_config(route_name='api.users', request_method='POST', renderer='json')
def create_user_view(request):
    # create a user via the request.POST parameters
    return {
        'userid': user.id,
    }

@view_config(route_name='api', request_method='GET', renderer='json')
def user_info_view(request):
    userid = request.matchdict['userid']
    # lookup user
    return {
        'name': user.name,
    }
于 2013-06-22T02:38:33.930 回答