istnieją sposoby zasilania szablony po stronie klienta z szablonów Django ciekawych optymalizacji; Jednak biorąc pod uwagę podobieństwa między językami szablonów Django i AngularJS, prawie nigdy nie warto tutaj pracować. Sparuję obsługę statyczną AngularJS z Django REST Framework dla większości projektów tego rodzaju.
Moja urls.py
kolejność operacji jest prawie zawsze adresy URL Django REST ramowe pierwszy (napisany jako ściśle jak to możliwe), a następnie ogólny wzór, który wskazuje wszystkiego innego do mojego angularjs bazowe szablonu aplikacji w moim STATIC_ROOT
reż do testowania lokalnego/dev scenariusze:
if settings.DEBUG:
urlpatterns += patterns('django.contrib.staticfiles.views',
url(r'', 'serve', {
'document_root': settings.STATIC_ROOT,
'path': '/base.html'}
),
)
wskazując wszystkie niedopasowanych żądań do tego samego app/szablonu, można rozpocząć korzystanie z historii-Hack metodę adresów URL i routingu, jeśli wolisz, że do hashtagami. Jeśli planujesz trzymać się tylko hashtagów, ostateczny URL może być bardziej restrykcyjny (na przykład pasujący do /
(URL root) z r'^$'
).
W produkcji użyję odwrotnego proxy lub serwera HTTP typu wolny klient jak nginx do obsługi zawartości AngularJS (statycznej), proxy żądań usług REST do aplikacji Django WSGI.
Do komunikacji z frameworkiem Django REST preferuję obiekty JS podobne do klasy, które służą do zbierania danych do aplikacji AngularJS i Django REST Framework iz aplikacji. W tym celu używam angular-django-rest-resource do generowania klas reprezentujących klasy modeli Django, które wystawiam w widokach REST Framework.
Dla maksymalnej elastyczności w zapytaniach kątowe-django-rest-zasobów może zrobić dla zasobów, będę miał Django filtr backend zainstalowany dla ram REST jak opisano here. Dzięki temu zasoby JS mogą żądać obiektów Django ograniczonych przez parametry (np. /polls/?author=345&finished=1
).
Jeśli wdrażasz operacje Django i REST w oddzielnej domenie serwerów, z których obsługiwany jest główny szablon AngularJS (na przykład, jeśli używasz innej sieci CDN innej firmy dla innej domeny HTML;), wtedy ważne jest, aby umożliwić przekazywanie żądań między domenami do tych zasobów. W tym celu polecam oprogramowanie pośrednie django-cors-headers.
Mam nadzieję, że to będzie pomocne. To nie jest najlepszy zestaw ćwiczeń, ale to był jeden, który zadziałał dla mnie.
Jak zarządzałeś rejestracją i uwierzytelnianiem? – poiuytrez
Mam zamiar użyć Django do części uwierzytelniania. – poiuytrez
Dobre pytanie. Zostawiłem to, ponieważ każdy przypadek jest inny."Najlepszą praktyką" przyjętą przez społeczność jest tworzenie usługi AngularJS, która daje możliwość sprawdzenia statusu autoryzacji użytkownika. [Ten artykuł] (http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app) opisuje, w jaki sposób można zbudować taką usługę. W przypadku korzystania z autorskiego autorskiego Django, polecam zacząć od włączenia mechanizmu uwierzytelniania opartego na sesjach [Django REST Framework] (http://django-rest-framework.org/api-guide/authentication.html#sessionauthentication) . –