我無法從python腳本訪問peewee數據庫,而不是寫數據(但奇怪的是在交互式shell中)。我正在用python,flask和peewee開發數據挖掘應用程序。我將在這裏將它縮減爲一個字節大小的問題,但它的範圍比im提供的要大。所有的python文件都位於同一個文件夾中燒瓶peewee無法在web服務器上工作
基本過程是一個python命令行操作,它會從紐約時代和instagram抓取一些信息並將它們存儲到Peewee(sqllite)數據庫中。然後我使用燒瓶應用程序來探索數據。
從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文件,這是一個燒瓶應用
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模式。但是當我將它部署到我的web派系服務器(並且讓所有的東西都在那裏運行)時,我再次迎接來自數據庫的空響應。這是我試圖直接參考燒瓶中的數據庫,認爲它可能是新聞報道的東西......但不是。
我只是困惑爲什麼一個sqllite數據庫將完全按照預期在本地執行,但沒有一次部署到Web服務器,但也......爲什麼我提供的瓶子代碼沒有從數據庫中得到任何東西,但運行交互式shell工作中的相同數據庫查詢?
有什麼想法?
嘆息..我想它是絕望的...回到MongoDB – mradfo21