Как передать контекстные данные в другой файл в формате dict/list/любой формат в django?
В своем проекте я пытаюсь собрать отзывы об автомобиле, выбранном пользователем. В приложении django я хочу передать данные из контекстного словаря в другой файл scrape.py
.
Код:
models.py
class SelectCar(models.Model):
BRANDS = (
('BMW','BMW'),
('MR','Mercedes')
)
brand = models.CharField(max_length=30,
choices=BRANDS,
default="BMW")
CAR_MODELS = (
('X1','X1'),
('X2','X2'),
('X3','X3')
)
car_model = models.CharField(max_length=30,
choices=CAR_MODELS,
default="X1")
forms.py
from .models import SelectCar
class SelectCarForm(forms.ModelForm):
class Meta:
model = SelectCar
fields = '__all__'
scrape.py, здесь я хочу импортировать данные контекста и выбрать url для конкретного автомобиля в цепочке if-else. Например, если выбранный автомобиль - honda amaze, контекст должен быть импортирован в scrape.py
так, чтобы я мог выбрать url.
import requests
from bs4 import BeautifulSoup
"""import context here in some way"""
def happyScrape():
"""here, import the context and choose url based on chosen car
if car is Honda amaze, choose url for honda amaze and so on.
example- if brand is honda and model is amaze,
"""
url = 'https://www.carwale.com/honda-cars/amaze/user-reviews/'\
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
cw_result = requests.get(url, headers=headers)
cw_soup = BeautifulSoup(cw_result.text, 'html5lib')
scrapeList =[]
#scrape code here, stored in scrapeListHTML
for data in scrapeListHtml:
scrapeList.append(data.text)
with open(r'./scrape/scrapeListFile.txt', 'w') as f:
for item in scrapeList:
# write each item on a new line
f.write("%s\n" % item)
views.py
from .forms import SelectCarForm
def ScrapeView(request):
context = {}
context['SelectCarForm'] = SelectCarForm()
if request.method == 'POST' and 'run_script' in request.POST:
from .scrape import happyScrape
happyScrape()
return render(request, "scrape.html", context)
Передайте конкретные данные из context
в функцию happyScrape()
.
В scrape.py
def happyScrape(data):
# use this data here
...
В views.py
def ScrapeView(request):
...
happyScrape(<data_from_context>)
...