在django中使用外部api的良好实践

时间:2018-02-13 22:18:48

标签: python django api view dry

我想知道我应该把api twitter的代码放在哪里。 我有两个应用程序:“帐户”和“推特”。

在“accounts”应用程序中,我有一个允许您使用twitter登录的代码('social_django','widget_tweaks')。

在“twitter”应用程序中,我想使用api twitter。

我的问题是,在“帐户”应用程序中登录并使用api是一种好习惯吗?你可以在视图中的“twitter”应用程序中登录api吗?

账户/ views.py

@login_required
def settings(request):
    user = request.user

    try:
        twitter_login = user.social_auth.get(provider='twitter')
    except UserSocialAuth.DoesNotExist:
        twitter_login = None

    can_disconnect = (user.social_auth.count() > 1 or user.has_usable_password())

    return render(request, 'accounts/settings.html', {
        'twitter_login': twitter_login,
        'can_disconnect': can_disconnect,
    })

微/ views.py

from django.views import generic
from .models import Tweet
from .forms import TweetForm


class AppTwitterListView(generic.ListView):
    model = Tweet

    def get_queryset(self):
        return Tweet.objects.filter(user=self.request.user)


class AppTwitterDetailView(generic.DetailView):
    model = Tweet
    context_object_name = 'tweet_item'


class AppTwitterCreateView(generic.CreateView):
    model = Tweet
    form_class = TweetForm
    template_name = "apptwitter/create.html"

0 个答案:

没有答案