文件夹组织Django Rest Framework

时间:2017-02-08 21:55:19

标签: django rest

好吧,它不允许我访问我的django rest framework文件夹,它不允许我导入所需的库。

这个例子

apps/
├── apis
│   ├── admin.py
│   ├── __init__.py
│   ├── management
│   │   ├── commands
│   │   └── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── bank
├── cart
├── category
│   ├── migrations
├── core
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0001_initial.pyc
│   │   ├── 0002_auto_20170123_2008.py
│   │   ├── 0002_auto_20170123_2008.pyc
│   │   ├── 0003_auto_20170131_1224.py
│   │   ├── 0003_auto_20170131_1224.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   └── views.py
├── __init__.py
├── __init__.pyc
├── location
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0001_initial.pyc
│   │   ├── 0002_delete_lakes.py
│   │   ├── 0002_delete_lakes.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   └── views.py
├── order
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0001_initial.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   └── tests.py
├── product
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   └── views.py
├── userprofile
│   ├── admin.py
│   ├── admin.pyc
│   ├── apps.py
│   ├── context_processors.py
│   ├── forms.py
│   ├── functions.py
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── 0001_initial.pyc
│   │   ├── 0002_remove_user_avatar.py
│   │   ├── 0002_remove_user_avatar.pyc
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── tests.py
│   └── views.py
└── website
    ├── admin.py
    ├── admin.pyc
    ├── apps.py
    ├── __init__.py
    ├── __init__.pyc
    ├── migrations
    │   ├── __init__.py
    │   └── __init__.pyc
    ├── models.py
    ├── models.pyc
    ├── tests.py
    ├── urls.py
    ├── urls.pyc
    ├── views.py
    └── views.pyc
principal/
├── __init__.py
├── __init__.pyc
├── settings
│   ├── base.py
│   ├── base.pyc
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── local-dist.py
│   ├── local.py
│   ├── local.pyc
│   └── test.py
├── urls.py
├── urls.pyc
├── wsgi.py
└── wsgi.pyc

然后在我的文件/apis/urls.py

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from rest_framework.urlpatterns import format_suffix_patterns
    from django.conf.urls import patterns, url, include
    from . import views

    urlpatterns = patterns('',
        url(r'^api/', include('rest_framework.urls', namespace='rest_framework')),
        url(r'fetch_fuckfinder_proposals_for/(?P<nick_of_finder>[^/]+)/(?P<current_latitude>-?\d{2,3}.\d{5})/(?P<current_longitiude>-?\d{2,3}.\d{5})/$', views.fetch_fuckfinder_proposals_for, name='fuckfinder_proposals'),
    )
urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'api'])

然后在我的文件/bodega/urls.py

# APPS
from apps.website.urls import urlpatterns as website_url
from apps.apis.urls import urlpatterns as apis_url

###
admin.autodiscover()




urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^api-token-auth/', 'jwt_auth.views.obtain_jwt_token'),
    url(r'^apis/', include(apis_url)),
url(r'^', include(website_url)),
    url(r'^api/', include('rest_framework.urls', namespace='rest_framework')),
    #TODO API_REST

1 个答案:

答案 0 :(得分:0)

apps/urls.py中,包括您的urlpatterns:

path('admin/',...........),
path('api_urls/', include('apis.urls', name="apis")),######

在apis / urls.py中包括:

from apis import views
app_name = 'apis' #the name of the app that contains you api

然后在urlpattern中包含app/apis/urls.py

path('', views.view_name, name='url_name'),
#all the urls for the api

如果结构是

app/
    app/
       settings.py
       manage.py
       urls.py
       #...
    app/api/
         urls.py
         views.py
         serializers.py
         models.py
         admin.py
    other app folders/
    #
    #