2017-08-28 69 views
0

我想提出一个项目,做了两两件事:1)以小时为单位的网页刮数据和这些数据插入到数据库 2)以JSON格式提供数据给定查询我需要在我的Flask-SQLAlchemy项目中使用应用程序工厂吗?

我能得到它当一切(视图,模型,db.session.add()等)在app.py文件中时工作。然而这并不理想,我想将它分开。

一旦我有一个工作项目,我想要在服务器上设置它来自动运行Webscraping /数据库填充功能(1),同时也响应http请求(2)。

为此,我是否需要沿着制作应用程序工厂的路线考虑应用程序上下文,或者这不是必需的?最小的项目布局是什么样子/我需要什么文件,以便分离出我的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脚本完成的,该脚本会不时更新数据库。这可以安排通过cron在服务器上运行。

相关问题