我在用Python做一个小项目。它分为两部分。
第一部分负责抓取网页并提取一些信息并将其插入数据库。
第二部分是利用数据库来呈现这些信息。
两部分共享数据库。在第二部分中,我使用Flask框架将信息显示为html,并进行一些格式化、样式设置等,使其看起来更清晰。
两部分的源文件都在同一个包中,但要正确运行此程序,用户必须分别运行爬网程序和结果演示程序,如下所示:
python crawler.py
然后
python presenter.py
一切都很好,除了一件事。我presenter要做的是创建html格式的结果,并在用户的默认浏览器中打开带有结果的页面,但它总是打开两次,这可能是由于run()方法的存在,该方法在新线程中启动Flask,并且对我来说事情变得模糊。我不知道该怎么做才能使presenter.py在运行后只打开一个选项卡/窗口。
以下是我的代码片段:from flask import Flask, render_template
import os
import sqlite3
# configuration
DEBUG = True
DATABASE = os.getcwd() + '/database/database.db'
app = Flask(__name__)
app.config.from_object(__name__)
app.config.from_envvar('CRAWLER_SETTINGS', silent=True)
def connect_db():