2017-08-28 8 views
0

は、私は2つのことを行い、プロジェクトを作っています:1)時間ごとにWebページからデータをこすりして)データベース 2に、このデータを挿入する特定のクエリのためにJSON形式でデータを提供Flask-SQLAlchemyプロジェクトにアプリケーションファクトリが必要ですか?

私はそれを得ることができますすべて(ビュー、モデル、db.session.add()など)がapp.pyファイル内にあるときに動作します。しかし、これは理想的ではないので、私はそれを分けていきたいと思います。

私は働いているプロジェクトがあれば、httpスクリーニング(2)にも応答しながら、Webスクラップ/データベースの移植機能(1)を自動的に実行するようにサーバーに設定します。

このため、アプリケーションファクトリを作成し、アプリケーションコンテキストを検討するルートを下げる必要がありますか、これは必須ではありませんか?私のapp.pyファイルを分離して(そしてアプリケーションファクトリを使用するために)、最小のプロジェクトレイアウトは/私が必要とするファイルのように見えます。

答えて

1

app.pyからモデルを分離すると、次のようになります。

models.py:

from flask_sqlalchemy import SQLAlchemy 

db = SQLAlchemy() 

class Post(db.Model): 
    ... 

class User(db.Model): 
    ... 

がapp.py:

from models import db, Post, User 

app = Flask(__name__) 
db.init_app(app) 

アプリケーションがあまり大きくない場合は、app.pyに意見を残すことができます。

フラスコはFlaskアプリとは別に行うことができます。 Flaskアプリケーションは、データベースにあるものだけを表示します。スクレイピングはPythonスクリプトを介して行われます。Pythonスクリプトはdbを時々更新します。これはcron経由でサーバー上で実行するようにスケジュールできます。

関連する問題