Im, пишущее веб-приложение в колбе, которое отображает остановки автобусов, извлеченные из api.ImportError: No module named views
У меня есть форма на index.html, где пользователь может ввести номер остановки, что число получает подобраны в views.py где функция также работает через задачу сельдерей для извлечения данных API:
from flask import render_template, request
from app import app
@app.route('/')
def index():
return render_template('index.html')
@app.route('/stopno', methods=['POST'])
def stopno():
stopid = request.form['input']
from app.tasks import apidata
apidata.delay()
return render_template('action.html')
вот мой tasks.py:
from celery import Celery
import json
import requests
import time
ac = Celery('tasks', broker='amqp://localhost')
@ac.task(name='tasks.apidata')
def apidata():
from views import stopno
api = '*apiurl*:' + str(stopid)
saveinfo = 'static/stop' + str(stopid)+ '.json'
r = requests.get(api)
jsondata = json.loads(r.text)
with open(saveinfo, 'w') as f:
json.dump(jsondata, f)
Я ввожу stopno из взглядов на задачи, так что я могу искать апи для указанной остановки, в настоящее время, когда пользователь вводит номер остановки в action.html нагрузки штраф и отображает номер остановки, который вводит пользователь, но новый файл или данные не создаются для число стоп и сельдерей выдает ошибку о том,
ImportError: No module named views
структура моего проекта
|____run.py
|____app
| |______init__.py
| |____views.py
| |____tasks.py
| |____static
| | |____json
| |____templates
| | |____action.html
| | |____index.html
Попробуйте 'из app.views import stopno'. – Laszlowaty
пробовал это уже, бросает ту же ошибку. –