backbone.js와 django를 Django-restframework와 함께 사용할 때 라우팅과 URL에 대해 혼란스러워합니다.Django-RestFramework 2와 backbone.js routing
- 템플릿은 REST 프레임 워크를 사용할 때 어디에 적합합니까?
url(r'^home/students/$', views.StudentList.as_view()), class StudentList(APIView): """ List all students """ def get(self, request, format=None): students = Person.objects.filter(person_type = Person.STUDENT) serializer = PersonSerializer(students) return Response(serializer.data, "core/teachers/teacher_teaching.html") def pre_save(self, obj): obj.owner = self.request.user
방법 백본을 수행
예를 들어, 나는 그냥 div
표시 학생들을 업데이트 backbone.js를 사용하려면 내 URL 중 하나에 대해 정의 된 클래스를 기반으로보기를 경로는 django의 URL 라우팅에 적합합니다. 나는, 파일 router.js에서 이런 일이 :
function($,jqueryui, _, Backbone, HomeView, StudentsView) {
var AppRouter = Backbone.Router.extend({
routes: {
// Define some URL routes
':home': 'showStudents',
'users': 'showContributors',
// Default
'*actions': 'defaultAction'
}
});
var initialize = function(){
var app_router = new AppRouter;
app_router.on('route:showStudents', function(){
// Call render on the module we loaded in via the dependency array
var studentsView = new StudentsView();
studentsView.render();
});
그러나 경로가 실제로 내 의견에 도착하지?
라우팅에 대한 훌륭한 설명은 +1입니다. 당신이 언급 한 것에 대한 마지막 질문 하나만 남았습니다. django가 내 html 페이지에 대한 라우팅을 담당한다면 backbone.js 라우팅이 필요합니다. – Warz
@Warz : 페이지에 여러 개의 섹션, 탭 또는 서브 페이지가있는 경우 실제 별도의 페이지처럼 보이게하고 브라우저의 탐색 바에서 액세스 할 수 있도록하려면 예. –
좋아, 내 페이지 (탭, 서브 페이지 ...)가 모두 적절한 {% url %} 정의를 가지고 있다면, 그 앞에 해시 태그 '#'이 없으므로 백본이 결코 경로를 읽지 않을 것입니다. 나는 장고와 백본의 현재 URL을 인식 할 수 있기를 원한다. 장고는 기본 템플릿을 제공하고 백본은 API 호출을하고 페이지의 특정 부분을 아약스로 업데이트 할 수있다. – Warz