![](/img/trans.png)
[英]Django Rest Framework: How to set authentication in `urls.py`?
[英]What is the right way to setup urls.py for django-rest-framework + angular-route + static files?
我了解我想做什么的概念(这里有一个相当不错的问题: Django,REST和Angular Routes )
Django有一个用于DRF,Admin的路由,并且至少需要一个用于角度页面的路由。
但是我不确定实现细节,尤其是在哪里放置前端/静态文件,在urls.py中放置什么以及如何为dev + production配置它。
我的网址格式当前如下所示:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
理想情况下,在生产中,我希望在不接触django的情况下提供HTML-直接来自nginx或类似的东西(可能使用AWS EB,但这不在此问题范围内)。
对于开发人员-我不介意,只要有效!
跳过djangos模板系统以获得角度会更好,而不是更改角度运算符。 我不打算使用Django模板(在djangos admin和DRF可浏览视图中除外)
为了进行开发,我在主urls.py
文件的末尾使用了类似的方法,以提供来自各个目录的静态文件:
if settings.DEBUG:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
# this connects STATIC_URL to STATIC_ROOT
urlpatterns += staticfiles_urlpatterns()
# connect other paths to directories
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
urlpatterns += static('/app/',
document_root=join(settings.BASE_DIR, '../ng_app/'))
对于生产,您将Web服务器设置为处理请求。 首先,已知路由,例如/admin/
, /api/
, /api-auth/
以及/static/
文件。
然后是一个包罗万象的路由/
,它将始终通过Angular应用程序为任何路由提供您的index.html
。 因此,Angular中的HTML5路由将始终始终先加载该应用程序,然后该应用程序使用其自己的路由从API数据构建正确的页面。
实际的应用程序文件可以在任何地方,甚至可以在其他服务器上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.