什么是最好的做法,使他们的工作像最好的朋友(静态文件,auth,部署等)
我的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中间件。
我希望这是有帮助的。这不是最好的做法集,但它是一个为我工作。