Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署 #华为云·寻找黑马程序员#

本文主要是介绍Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署 #华为云·寻找黑马程序员#,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

          • 假装很努力
          • 关于pipenv
          • 天气预报
          • 爬虫思路
          • 爬虫代码
          • Web界面
          • Flask路由
          • pipenv部署
          • The End

假装很努力

也许是最近经常熬夜的原因,导致有时莫名的发愣,然后一晃眼半个小时过去了…每天晚上坐在电脑前,看着很辛苦但觉得效率不高。除了搞公众号,其余貌似学到的东西很少。所以,之后周末的时间需要用来学一些更贴近自身的知识,然后…就一周五更喽。每天写原创的东西,说实话最近开始有些卡文了。看来得找个系列再来一波…

关于pipenv

昨天介绍了pipenv这个相比于virtualenv更高端大气上档次的虚拟环境管理软件,但看了下流量貌似不是很受欢迎,也许是我介绍的不够好吧。那么今天就拿它做一个例子,开发一款天气预报查询软件,然后打包部署到手机的Termux下。

天气预报

获取天气预报数据,离不开中国天气网
天气预报网
登陆网站,在搜索栏中输入城市名称点击搜索,即可获取该地区的天气预报。比如我搜索西安,完成后会跳转至下面的网址:
西安天气
其他的都好说,但是这个地区编码怎么搞?F12看看网络请求…

爬虫思路

网络请求
我们可以看到网站先通过get请求,访问url**http://toy1.weather.com.cn/search?cityname=%E8%A5%BF%E5%AE%89并传参cityname**,获取到城市编码,再进行了相关跳转。有些young man 会问这个cityname怎么是这种格式…其实很简单:

from urllib.parse import quote
quote('西安', encoding='utf-8')
'%E8%A5%BF%E5%AE%89'

知道了这些,我们就可以有针对性的获取每个城市最近7天的天气预报了,当然少不了一堆beautifulsoup的元素定位操作:
城市近期天气

# 元素定位思路:
id=7d --> class='clearfix' -->ul --> findAll(li)
# 参数获取
h1标签为日期
class=wea 为天气
class=tem 为温度
爬虫代码

确定了这些内容,我们的爬虫代码基本就OK了,但这个不是今天的重点,所以简单看下吧:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/7/19 1:56
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : weather.pyimport requests
from urllib.parse import quote
import re
from bs4 import BeautifulSoupclass WeatherReport:def __init__(self, city):self.quote_city = quote(city, encoding='utf-8')self.result_info = []def get_city_code(self):r = requests.get('http://toy1.weather.com.cn/search?cityname=%s' % self.quote_city)response = eval(r.text)[0].get('ref')try:return re.search('[0-9]+'

这篇关于Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署 #华为云·寻找黑马程序员#的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583889

相关文章

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序