им не удается получить доступ к базе данных peewee из скрипта python, отличного от того, который пишет данные (но странно в интерактивной оболочке). Я разрабатываю приложение для интеллектуального анализа данных с помощью python, flask и peewee. Я собираюсь разрезать его на проблему с размером байтов, но он большой по объему, чем то, что он представляет. все файлы python находятся в той же папкеflask peewee не работает на веб-сервере
Основной процесс - это операция командной строки на python, которая выходит и захватывает некоторую информацию из новых york и instagram и сохраняет их в базе данных Peewee (sqllite). Затем я использую приложение фляги для изучения данных.
Heres одна из моделей database.py:
from peewee import *
class Story(Model):
title = CharField()
story = TextField()
date = DateField()
class Meta:
database = SqliteDatabase("newsalmost.db",threadlocals = True)
newsalmost выглядит примерно так:
from database import *
class NewsAlmost(object):
def __init__(self):
self.db = SqliteDatabase("newsalmost.db",threadlocals = True)
если делает такие вещи, как это:
story = Story.create(title = self.feed.stories[key]["title"], story = self.feed.stories[key],date = datetime.datetime.now(), is_relative = True)
я могу тогда пробег:
"python newslamost.py -g"
и он будет идти собирать вещи и записать их в базу данных
я тогда есть файл с именем webapp.py, который представляет собой колбу App
import newsalmost
from flask import Flask
from flask import send_file
import subprocess
app = Flask(__name__)
import os
import json
from database import *
@app.route("/")
def index():
r = []
for i in Image.select():
r.append(str(i))
return json.dumps(r)
«питон webapp.py»
Я попытался разбить его на основную проблему. Приложение-фляга никогда ничего не видит в базе данных .. когда-либо ..
Я ЗНАЮ, что он правильно их записывает, потому что я могу запустить «python» в этой папке, импортировать базу данных и получить много историй из Stories.select()
WEIRDER вещь, что я изначально задумал это более желательным способом, когда приложение флэша просто создает новый экземпляр экземпляра newsalmost, а затем вызывает функции для этого, чтобы возвращать материал из базы данных, и это сработало. IN DEV РЕЖИМ. Но когда я развернул его на своем сервере веб-фракций (и все там запущен), меня снова приветствует пустой ответ из базы данных. это моя попытка попытаться напрямую ссылаться на базу данных в фляжке, думая, что, возможно, это были самые невероятные вещи ... но нет.
Я просто смущен, почему база данных sqllite будет выполняться точно так, как ожидалось, локально, но не раз развертывается на веб-сервере, но также ... почему код флагов, который я предоставил, не получает ничего из базы данных, но работает тот же запрос базы данных в интерактивной работе оболочки?
любые идеи?
вздоха .. я полагаю, что его безнадежно ...назад к MongoDB – mradfo21