Пример #1
0
    def create_api_blueprint(self, collection_name, api_name=None, api_prefix=API_PREFIX, methods_allowed=['GET', ], pk_type='str', pk='_id'):
        """
        
        """
        collection = self.get_collection(collection_name)
        
        view_name, endpoint, blueprint_name = self.format_names(collection, api_name, api_prefix) # format_names returns a tuple with the names used to register the views and blueprints.
        
        try:
            collection_view = APIView.as_view(view_name, collection) # Flask pluggable view
        except TypeError:
            # This exception occurs because flask views don't support unicode 
            # And pymongo collections.name returns a unicode value
            collection_view = APIView.as_view(str(view_name), collection, pk)

        methods_allowed = self.format_methods(methods_allowed)
        
        self.validate_methods(MongoAPI.METHODS_SUPPORTED, methods_allowed)

        blueprint = Blueprint(str(blueprint_name), __name__, api_prefix)

        blueprint.add_url_rule(endpoint, view_func=collection_view, methods=self.root_methods(methods_allowed[:])) #/api/collection_name/

        endpoint = create_url_placeholder(endpoint, pk_type, pk)

        blueprint.add_url_rule(endpoint, view_func=collection_view, methods=self.document_methods(methods_allowed[:])) #/api/collection_name/primary_key

        blueprint.mongo_rest_api = True
        return blueprint
Пример #2
0
    def create_api_blueprint(self,
                             collection_name,
                             api_name=None,
                             api_prefix=API_PREFIX,
                             methods_allowed=[
                                 'GET',
                             ],
                             pk_type='str',
                             pk='_id'):
        """
        
        """
        collection = self.get_collection(collection_name)

        view_name, endpoint, blueprint_name = self.format_names(
            collection, api_name, api_prefix
        )  # format_names returns a tuple with the names used to register the views and blueprints.

        try:
            collection_view = APIView.as_view(
                view_name, collection)  # Flask pluggable view
        except TypeError:
            # This exception occurs because flask views don't support unicode
            # And pymongo collections.name returns a unicode value
            collection_view = APIView.as_view(str(view_name), collection, pk)

        methods_allowed = self.format_methods(methods_allowed)

        self.validate_methods(MongoAPI.METHODS_SUPPORTED, methods_allowed)

        blueprint = Blueprint(str(blueprint_name), __name__, api_prefix)

        blueprint.add_url_rule(endpoint,
                               view_func=collection_view,
                               methods=self.root_methods(
                                   methods_allowed[:]))  #/api/collection_name/

        endpoint = create_url_placeholder(endpoint, pk_type, pk)

        blueprint.add_url_rule(
            endpoint,
            view_func=collection_view,
            methods=self.document_methods(
                methods_allowed[:]))  #/api/collection_name/primary_key

        blueprint.mongo_rest_api = True
        return blueprint
Пример #3
0
from django.conf.urls import patterns, url

from views import HomeView, APIView, JqueryView, JhtmlView, CarView, SampleView, ValidationView, UserView, UserListView, EditView, DeleteView

urlpatterns = patterns("apps",
    url(r'^$',HomeView.as_view(),name='home'),
    url(r'^get-list/$',APIView.as_view(),name='get_list'),
    url(r'^jquery/$',JqueryView.as_view(),name='jquery'),
    url(r'^jhtml/$',JhtmlView.as_view(),name='jhtml'),
    url(r'^add-car/$',CarView.as_view(),name='add-car'),
    url(r'^sample/$',SampleView.as_view(),name='sample'),
    url(r'^jvalid/$',ValidationView.as_view(),name='jvalid'),
    url(r'^add-user/$',UserView.as_view(),name='add-user'),
    url(r'^all-user/$',UserListView.as_view(),name='all-user'),
    url(r'^edit-user/$',EditView.as_view(),name='edit-user'),
    url(r'^delete-user/$',DeleteView.as_view(),name='delete-user'),    
    )
Пример #4
0
    url(r"^courses/(?P<course_id>\d+)/manage$", ManageView.as_view(), name="course-manage"),
    url(r"^courses/(?P<course_id>\d+)/authcheck$", views.check_course_authorization, name="course-authorization-check"),
    url(
        r"^courses/(?P<course_id>\d+)/exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)/(?P<exercise_name>\d+)$",
        ExerciseView.as_view(),
        name="course-exercises",
    ),
    url(
        r"^courses/(?P<course_id>\d+)/exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)$",
        ExerciseView.as_view(),
        name="course-exercise-groups",
    ),
    url(r"^courses/(?P<course_id>\d+)/exercises$", ExerciseView.as_view()),
    url(r"^courses/(?P<course_id>\d+)$", PlayView.as_view(), name="course-index"),
    # Non-Course Exercises
    url(r"^manage$", ManageView.as_view(), name="manage"),
    url(
        r"^exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)/(?P<exercise_name>\d+)$", ExerciseView.as_view(), name="exercises"
    ),
    url(r"^exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)$", ExerciseView.as_view(), name="exercise-groups"),
    url(r"^exercises$", ExerciseView.as_view()),
    # API
    url(r"^api$", APIView.as_view(), name="api"),
    url(r"^api/v1/exercises$", APIExerciseView.as_view(), name="api-exercises"),
    url(r"^api/v1/groups$", APIGroupView.as_view(), name="api-groups"),
    # LTI -- deprecated -- moved into separate app named "lti"
    # Mainting these URLs for backwards compatibility. Remove when possible.
    url(r"^lti-launch$", LTILaunchView.as_view(), name="lti-launch"),
    url(r"^lti-config$", LTIToolConfigView.as_view(), name="lti-config"),
)
Пример #5
0
from lti.views import LTIToolConfigView, LTILaunchView

urlpatterns = patterns(
    '',
    url(r'^$', PlayView.as_view(), name='index'),

    # Course Exercises
    url(r'^courses/(?P<course_id>\d+)/manage$', ManageView.as_view(), name="course-manage"),
    url(r'^courses/(?P<course_id>\d+)/authcheck$', views.check_course_authorization, name="course-authorization-check"),
    url(r'^courses/(?P<course_id>\d+)/exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)/(?P<exercise_name>\d+)$', ExerciseView.as_view(), name="course-exercises"),
    url(r'^courses/(?P<course_id>\d+)/exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)$', ExerciseView.as_view(), name="course-exercise-groups"),
    url(r'^courses/(?P<course_id>\d+)/exercises$', ExerciseView.as_view()),
    url(r'^courses/(?P<course_id>\d+)$', PlayView.as_view(), name="course-index"),

    # Non-Course Exercises
    url(r'^manage$', ManageView.as_view(), name="manage"),
    url(r'^exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)/(?P<exercise_name>\d+)$', ExerciseView.as_view(), name="exercises"),
    url(r'^exercises/(?P<group_name>[a-zA-Z0-9_\-.]+)$', ExerciseView.as_view(), name="exercise-groups"),
    url(r'^exercises$', ExerciseView.as_view()),

    # API 
    url(r'^api$', APIView.as_view(), name="api"),
    url(r'^api/v1/exercises$', APIExerciseView.as_view(), name="api-exercises"),
    url(r'^api/v1/groups$', APIGroupView.as_view(), name="api-groups"),

    # LTI -- deprecated -- moved into separate app named "lti" 
    # Mainting these URLs for backwards compatibility. Remove when possible.
    url(r'^lti-launch$', LTILaunchView.as_view(), name='lti-launch'),
    url(r'^lti-config$', LTIToolConfigView.as_view(), name='lti-config'),
)