【问题标题】:Django Views saving data on application startDjango Views 在应用程序启动时保存数据
【发布时间】:2015-01-23 21:15:33
【问题描述】:

我有一个奇怪的问题,我似乎无法弄清楚。对 django 和 python 来说相对较新,但这是我第 4 个项目中的第 3 个。在这个项目中,我有一个视图可以通过发出大约 400 个 http 请求来刷新数据库。这需要一段时间,但没关系,它只是很少调用。 我的问题是,每当我启动我的应用程序时,访问存储在另一个导入模块中的代码的那个视图就是这样。它正在提出所有这些请求。它正在保存所有这些数据。每次我启动服务器并向根页面发出请求时。我觉得我在这里遗漏了一些非常明显的东西,但我是自学成才并且非常难过。我已经为他的项目链接了我的 github,但我也会包括一些重要的部分。 https://github.com/heymanitsmematt/CalledIt

---我认为导致一切运行缓慢的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)

--我的主应用程序视图,我希望空 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()),
)

--主项目urls dispatch文件

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)),
)

【问题讨论】:

  • 忽略导入问题的命名,已修复

标签: python django python-2.7 django-views


【解决方案1】:

updateNcaaMensBasketball 视图类中的代码必须在“post”或“get”方法中,或者只使用基于函数的视图。

在您的情况下,每次导入类时都会执行类中的代码。

对不起我的英语

Django CBV docs

【讨论】:

  • 这修复了它。非常感谢,基于类的视图比基于函数的视图更难。
猜你喜欢
  • 2019-08-15
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多