什么是使用AngularJS与Django的最佳实践

前端之家收集整理的这篇文章主要介绍了什么是使用AngularJS与Django的最佳实践前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我即将开始一个项目与AngularJS的客户端和Django的服务器端。

什么是最好的做法,使他们的工作像最好的朋友(静态文件,auth,部署等)

有很多方法可以通过Django模板为客户端模板提供有效的优化;然而,考虑到Django和AngularJS的模板语言之间的相似之处,这里几乎不值得努力。我将把静态服务AngularJS与 Django REST Framework为这种大多数项目。

我的urls.py的操作顺序几乎总是Django REST框架URL(尽可能严格地写),后面是一个通用模式,它指向我的基本AngularJS应用程序模板在我的STATIC_ROOT dir中的本地测试/开发场景:

if settings.DEBUG:
    urlpatterns += patterns('django.contrib.staticfiles.views',url(r'','serve',{
            'document_root': settings.STATIC_ROOT,'path': '/base.html'}
        ),)

通过将所有不匹配的请求指向同一个应用/模板,您可以开始使用URL和路由的history-hack方法(如果您希望使用hashtag)。如果您只打算坚持使用主题标签,则您的最终网址匹配可能更严格(例如,匹配/(网址根)与r’^ $’)。

在生产中,我将使用逆向代理或慢客户端HTTP服务器(如Nginx)来提供AngularJS(静态)内容,将对REST服务的请求代理到Django WSGI应用程序。

为了与Django REST框架进行通信,我喜欢使用类样的JS对象来封装AngularJS应用程序和Django REST框架中的数据。为此,我使用angular-django-rest-resource生成代表我在REST框架视图中公开的Django模型类的类。

为了在查询angular-django-rest-resource可以获得资源的最大灵活性,我将为REST框架安装django-filter后端,如描述here.这允许JS资源请求由参数约束的Django对象(例如/ polls /?author = 345& finished = 1)。

如果您在服务器的单独域上部署Django和REST操作,从而提供AngularJS主模板(例如,如果您在HTML的其他Internet域上使用第三方CDN),那么重要的是允许跨域请求这些资源。为此,我推荐django-cors-headers中间件。

我希望这是有帮助的。这不是最好的做法集,但它是一个为我工作。

猜你在找的Angularjs相关文章