<分区>
我即将开始一个项目,客户端使用 AngularJS,服务器端使用 Django。
使它们像最好的 friend 一样工作的最佳实践是什么(静态文件、身份验证、部署等)
<分区>
我即将开始一个项目,客户端使用 AngularJS,服务器端使用 Django。
使它们像最好的 friend 一样工作的最佳实践是什么(静态文件、身份验证、部署等)
最佳答案
有一些方法可以从 Django 模板为您的客户端模板提供支持,以进行有趣的优化;然而,鉴于 Django 和 AngularJS 的模板语言之间的相似性,在这里几乎不值得付出努力。我会将 AngularJS 的静态服务与 Django REST Framework 配对对于大多数此类项目。
我的 urls.py
操作顺序几乎总是首先是 Django REST Framework URL(尽可能严格地编写),然后是将其他所有内容指向我的基本 AngularJS 应用程序模板的通用模式我的 STATIC_ROOT
本地测试/开发场景的目录:
if settings.DEBUG:
urlpatterns += patterns('django.contrib.staticfiles.views',
url(r'', 'serve', {
'document_root': settings.STATIC_ROOT,
'path': '/base.html'}
),
)
通过将所有不匹配的请求指向同一个应用程序/模板,您可以开始使用 URL 和路由的 history-hack 方法(如果您更喜欢 hashtags)。如果您只打算坚持主题标签,您的最终 URL 匹配可能会更严格(例如匹配 /
(URL 根)与 r'^$'
)。
在生产中,我将使用反向代理或像 nginx 这样的慢速客户端 HTTP 服务器来提供 AngularJS(静态)内容,将 REST 服务请求代理到 Django WSGI 应用。
为了与 Django REST Framework 通信,我更喜欢使用类似类的 JS 对象来编码 AngularJS 应用程序和 Django REST Framework 之间的数据。为此,我使用 angular-django-rest-resource生成表示我在 REST Framework View 中公开的 Django 模型类的类。
为了最大限度地灵活地查询 angular-django-rest-resource 可以对资源进行的查询,我将为 REST Framework 安装 django-filter 后端,如所述 here .这允许 JS 资源请求受参数约束的 Django 对象(例如 /polls/?author=345&finished=1
)。
如果你在一个单独的服务器域上部署 Django 和 REST 操作,从那里提供 AngularJS 主模板(例如,如果你在不同的 Internet 域上使用第三方 CDN 来获取 HTML) ,那么允许对这些资源的跨域请求很重要。为此,我推荐 django-cors-headers中间件。
希望对您有所帮助。这不是最佳实践集,但它对我有用。
关于django - 将 AngularJS 与 Django 一起使用的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148909/
相关文章:
django - 托管私有(private) Sphinx 文档
javascript - Angular + ui-grid + 计算列总数
javascript - 工厂、服务和 vendor 之间有什么区别?
javascript - 在渲染 Angularjs 之前隐藏元素
python-3.x - Django多对一关系将数据添加到多方
python - 无法在 AWS Rest API 请求中使用 "Filter"
java - RESTful - 在 Queryparam 中获取 null