2015-01-23 3 views
0

У меня странная проблема, я не могу понять. Относительно новичок в django и python, но это мой третий из 4-го проекта. В этом проекте у меня есть представление, которое обновляет базу данных, создавая около 400 запросов HTTP. Это требует времени, но это прекрасно, его называют редко. Моя проблема заключается в том, что всякий раз, когда я запускаю приложение, это представление, которое обращается к коду, хранящемуся в другом импортированном модуле, делает это. Он делает все эти просьбы. Он сохраняет все эти данные. Каждый раз я запускаю свой сервер и делаю запрос на корневую страницу. Я чувствую, что мне не хватает чего-то очень очевидного здесь, но я самоучка и очень сильно тупой. Я связал свой github для его проекта, но я также включу некоторые из важных бит. https://github.com/heymanitsmematt/CalledItDjango Views Сохранение данных при запуске приложения

--- API urls.py, что я думаю, что вызывает все, чтобы работать медленно

from django.conf.urls import patterns 
from django.views.generic import TemplateView 
from views import UpdateMensNCAABasketball 
from django.views.decorators.csrf import csrf_exempt 

urlpatterns = patterns('api/', 
    (r'^ncaabball/$', UpdateMensNCAABasketball.as_view()) 
) 

- вид API, что делает тяжелый подъем

from django.shortcuts import render, render_to_response 
from app.models import User, Sport, Event, Party, Prediction 
from django.views.generic import TemplateView, View, ListView 
from django.http import HttpResponse 
import simplejson 
from django.views.decorators.csrf import csrf_exempt 
from django.core import serializers 
from django.template import RequestContext, loader 
import requests 
from NCAABBallScraper import Scraper, ScheduleScraper 
from app.models import Sport, Team, Event, User, Party, Prediction 


months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec' 
months = months.split() 
def monthGetter(month, months): 
    i=1 
    for m in months: 
    if month == m: 
     return i 
    else: i += 1 

class updateNcaaMensBasketball(View): 
    sport = Sport.objects.get_or_create(sport = 'Ncaa Mens Basketball')[0] 
    sport.save() 
    scraper = Scraper() 
    scraper.parse() 
    schedScraper = ScheduleScraper(scraper.teams) 

--My главную вид приложения, где я хочу, чтобы пустые URL-адреса перенаправлялись

from django.conf.urls import patterns, url 
from django.views.generic import TemplateView 
from app.views import Main 
from django.views.decorators.csrf import csrf_exempt 

urlpatterns = patterns('', 
    (r'^$', Main.as_view()), 
) 

- The ma в проекте URLs отправки файла

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from app import urls 
from api import urls 


urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'calledit.views.home', name='home'), 
    # url(r'^blog/', include('blog.urls')), 
    url(r'^', include(app.urls)), 
    url(r'^api/', include(api.urls)), 
    url(r'^admin/', include(admin.site.urls)), 
) 
+0

Игнорируйте именование по вопросам импорта, который был зафиксирован – HeyManItsMeMatthew

ответ

2

код в updateNcaaMensBasketball класс представления должен быть в «пост» или «получить» метод или просто использовать представления функции-базы.

В вашем случае код в классе выполняется каждый раз, когда был импортирован класс.

Извините за мой английский

Django CBV docs

+0

Это зафиксировал его. Большое спасибо, взгляды, основанные на классах, намного сложнее, чем представления на основе функций. – HeyManItsMeMatthew