第一部分负责抓取网页并提取一些信息并将其插入到数据库中。

第二部分是resposible使用数据库来呈现这些信息。 两部分共享数据库。在第二部分中,我使用Flask框架将信息显示为具有格式,样式等的html,以使其看起来更清晰。

两个部分的源文件都在同一个包,但运行此程序正常用户有权运行履带式并分别导致主持人是这样的:

蟒蛇crawler.py

然后

蟒蛇presenter.py

一切都还好吧只是,除了一两件事。我主要做什么是以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():

"""Returns a new connection to the database."""

try:

conn = sqlite3.connect(app.config['DATABASE'])

return conn

except sqlite3.Error:

print 'Unable to connect to the database'

return False

@app.route('/')

def show_entries():

u"""Loads pages information and emails from the database and

inserts results into show_entires template. If there is a database

problem returns error page.

"""

conn = connect_db()

if conn:

try:

cur = connect_db().cursor()

results = cur.execute('SELECT url, title, doctype, pagesize FROM pages')

pages = [dict(url=row[0], title=row[1].encode('utf-8'), pageType=row[2], pageSize=row[3]) for row in results.fetchall()]

results = cur.execute('SELECT url, email from emails')

emails = {}

for row in results.fetchall():

emails.setdefault(row[0], []).append(row[1])

return render_template('show_entries.html', pages=pages, emails=emails)

except sqlite3.Error, e:

print ' Exception message %s ' % e

print 'Could not load data from the database!'

return render_template('show_error_page.html')

else:

return render_template('show_error_page.html')

if __name__ == '__main__':

url = 'http://127.0.0.1:5000'

webbrowser.open_new(url)

app.run()

2012-06-20

koleS

python网址在浏览器能打开_Python - Flask - 在默认浏览器中打开一个网页相关推荐

  1. [乐意黎原创] 删除QQ的MiniBrowser浏览器,QQ聊天会话中点击链接直接用默认浏览器中打开

    [乐意黎原创] 删除QQ自带的MiniBrowser浏览器,使从聊天会话中点击链接直接打开默认浏览器中打开 如题,不知从什么版本开始,乐-意-黎无意中发现,点击QQ聊天会计中的链接时,不会在默认浏览器 ...

  2. python将输入值转化为元组_Python实现将元组中的元素作为参数传入函数的操作

    本文由Markdown语法编辑器编辑完成. 1. 需求: 现在有一个Python的需求需要实现: 就是实现连接一次数据库,就能够执行多条SQL语句,而且这个SQL语句是需要通过调用者将每一次执行的参数 ...

  3. python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法

    在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...

  4. python字符串提取数字并求和_python实现将字符串中的数字提取出来然后求和

    因工作原因,很久没有学习python知识了,感觉都快忘记了,前天看到一个练习题,如何将字符串中的数字提取出来,然后求和呢?下面我来解释一下如何通过python代码来实现. 题目:字符串43...3y2 ...

  5. python 拆分excel单元格_Python怎么在Excel中把一个单元格里的内容拆分提取?:excel表格已拆分的数据提取...

    Python怎么在Excel中把一个单元格里的内容拆分提取? 有规律的话写代码可以处理,没有就没有办法 如何将EXCEL表中的数据分离出来? 如图,B1输入:=LEFT(A1,FIND("排 ...

  6. ajax 在新选卡打开,JavaScript在新窗口中打开,而不是选项卡

    我有一个选择框,当选择一个项目时,它会调用window.open(url) . Firefox默认会在新标签页中打开页面. 但是,我希望页面在新窗口中打开,而不是在新标签页中打开. 我该怎么做? #1 ...

  7. 一个js文件 多个html文件怎么打开,通过PHP在PhantomJs中打开多个html文件抛出语法错误...

    我想让我的php脚本从命令行调用phantomjs,这将从许多html文件中生成多个pdf.所以我有一个连接字符串与路径我的HTML文件,接下来我调用exec命令:通过PHP在PhantomJs中打开 ...

  8. java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?

    慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...

  9. php打开目录文件类型,php中打开目录并输出目录文件实现代码

    opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用. 语法 opendir(path,context) */ $d=dir(&q ...

最新文章

  1. 外观设计模式(门面模式)
  2. python原始数据是什么_以python请求发送原始数据
  3. python操作系统-Python与操作系统有关的模块
  4. dev控件中LookUpEdit的数据绑定问题
  5. C#常用集合的使用(转载)
  6. java dispatcher详解_dispatcherservlet初始化过程详解
  7. 打开pdf文件提示文件过大_如何把pdf文件进行分割?拆分pdf文件的方法分享
  8. 截取指定字符前_Excel字符函数(1):利用3个函数提取邮箱中的域名
  9. 利用图神经网络进行社交机器人检测
  10. 虚拟蜜罐-honeyd安装部署
  11. 给出问题的答案 你就可以成为百万富翁
  12. 全国哀悼日 一段css让全站变灰
  13. JavaScript(1)使用ducument.write()在页面上显示红色的“开启JavaScript学习之旅”。
  14. Cherno C++系列笔记20——P60~P61 为什么不使用using namespace std、命名空间
  15. 计算机快捷键任务管理器,任务管理器经常要打开任务管理器快捷键是哪个
  16. 陆奇如何解构一家企业?
  17. hdwiki can not connect to mysql_HDWIKI最新版Update注入可修改管理员密码(MYSQL进制技巧)...
  18. HDU6348 Buy and Resell
  19. VMware收购云监控公司Wavefront
  20. linux文件如何改名字

热门文章

  1. PHP算法为数组补全不存在的键
  2. lampp mysql 等待响应时间很长_XAMPP 的 phpMyAdmin 就会有文件大小限制、上传超时等各种问题...
  3. python和对象复习_面向对象阶段复习
  4. php mysql通用类_PHP连接MYSQL数据库通用类_PHP教程
  5. ios调用restful接口_Postman调用https异常解决
  6. 电脑怎么下mcjava版_游戏下载常见问题(苹果、电脑玩家下载须知)
  7. 精通spring——深入java ee开发核心技术 pdf_2019精通Spring Boot 42讲 高清pdf完整版
  8. java jsch 密钥登陆_我们可以使用JSch进行基于SSH密钥的通信吗?
  9. python读取大文件的某行_Python按行读取文件的实现方法【小文件和大文件读取】...
  10. 路由器选华硕还是tp_路由器的坑太多,就算写着“千兆”你也要当心丨618选购指南...