# python期末项目 **Repository Path**: zhuyijing_bwcx/python-final-project ## Basic Information - **Project Name**: python期末项目 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-17 - **Last Updated**: 2021-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Python语言基础技术项目介绍文档 ### 一、项目介绍 #### 1.项目名称: [智能天气查询平台](zhuyijing.pythonanywhere.com) #### 2.项目简介: 这款智能天气查询平台为用户提供中国部分省份的天气查询服务,让用户可以随时随地查找到想要知道的城市天气状况;除此之外还提供IP定位查询服务,根据用户输入的IP地址,能够快速的帮用户定位IP的所在位置。 #### 3.功能框架结构图 ![](https://gitee.com/zhuyijing_bwcx/python-final-project/raw/master/images/%E5%8A%9F%E8%83%BD%E6%A1%86%E6%9E%B6%E7%BB%93%E6%9E%84%E5%9B%BE.png) #### 4.价值主张 调用高德api内的[天气查询](https://lbs.amap.com/api/webservice/guide/api/weatherinfo)与[IP定位功能](https://lbs.amap.com/api/webservice/guide/api/ipconfig),为大众推出一款智能查询平台;既与高德api形成合作获取收益,又从用户的使用中获取流量价值。 ### 二、问题&解决 #### 1.问题表述 问题|具体描述 ---|--- 用户画像|适用于所有人群 用户需求|希望查询到目标区域当前/未来的天气情况或IP地址 使用场景|当你没有看电视天气预报,但想要知道所在城市今天的天气情况时;或者你要出发去另一个城市出差,想要知道该城市未来几天的天气情况时,可以打开此平台进行登陆查询 痛点|天气状况对人的日常生活是非常重要的,在不知道具体天气温度数据的情况下,用户需要一个可以快速查询天气状况的平台 益点|方便快速得查询到当前位置的天气或IP地址 #### 2.解决方案表述 本网站在项目内融合了[Python基础语言](https://www.runoob.com/python/python-basic-syntax.html)和[flask-web功能](https://www.cnblogs.com/momoyan/p/11028458.html),以解决用户对天气和IP查询需求为目标,建立**登陆**、**七个中国省份选择**、**省份城市选择**、**IP定位查询**、**IP查询结果**等**十个**响应式页面,并配合 [Bootstrap](https://www.runoob.com/bootstrap/bootstrap-tutorial.html) 的统一样式模版及 [HTML](https://www.runoob.com/html/html-tutorial.html) 、[CSS](https://www.runoob.com/css/css-tutorial.html) 相关知识来完成 ### 三、编程功能基本描述 * 运用到的python知识结构图 ![](https://gitee.com/zhuyijing_bwcx/python-final-project/raw/master/images/python%E7%9F%A5%E8%AF%86%E7%BB%93%E6%9E%84%E5%9B%BE.png) * [HTML表单](https://www.w3school.com.cn/html/html_forms.asp)(用户输入账号密码进行登陆/选择查询目标) (学习时间:3天) ```
{{msg}}
``` ```

天气查询:{{city_name}}

``` * [HTTP请求](https://blog.csdn.net/ailunlee/article/details/90600174),用于传递数据(学习时间:2天) ``` @app.route('/login', methods=['GET', 'POST']) ``` * [flask模块](https://www.cnblogs.com/jfl-xx/p/8081454.html)使用(学习时间:5天) ``` from flask import Flask, render_template, request, redirect, session app = Flask(__name__) # flask 对象 ``` * [条件判断语句](https://www.cnblogs.com/buildnewhomeland/p/12147279.html),判断用户输入的信息 (学习时间:3天) ``` # 主页 @app.route('/index') def index(): # 对session 判断 ,没有值就跳转到登录页面 userinfo = session.get('user_info') if not userinfo: return redirect('/login') return render_template('index.html') ``` * [数据列表](https://www.runoob.com/python/python-lists.html)(学习时间:2天) ``` # 去省级列表拿数据 a1 = shengjilis.get(str(username)) # 城市对应表 lis = [] # 城市表 for k in a1.keys(): lis.append(k) # 获取查询数据,没有默认第一个 city_name = request.args.get('city') ``` * 天气查询API(学习时间:1天) ``` def cscx(city): url = 'https://restapi.amap.com/v3/weather/weatherInfo?city=%s&key=d7c4f8b2b484585de0c319f9b8ca4652&extensions=all'%city import requests poo = requests.get(url) data = poo.json() data = data['forecasts'][0]['casts'] return now_data ``` * IP查询API(学习时间:1天) ``` # ip查询 def ipdw(ip): url = 'https://restapi.amap.com/v3/ip?ip=%s&key=d7c4f8b2b484585de0c319f9b8ca4652&output=json'%ip import requests poo = requests.get(url) data = poo.json() data = data['province']+data['city'] return data ``` * 本项目所运用到的代码知识比较简洁,我也在运行代码期间出现过许多报错,如果出现[报错信息](https://cloud.tencent.com/developer/article/1654527),我及时查看并处理;在代码的后期优化方面我做得不够完善,也希望在项目结束后再对代码进行一些完善和改良 ### 四、云端项目部署的基本描述 #### 1.云端页面链接 * 登陆页面: http://zhuyijing.pythonanywhere.com/login * 主页-选择目标省份/IP查询页面: http://zhuyijing.pythonanywhere.com/index * 天气查询页面x7: http://zhuyijing.pythonanywhere.com/weather/hebei http://zhuyijing.pythonanywhere.com/weather/shandong http://zhuyijing.pythonanywhere.com/weather/shanxi http://zhuyijing.pythonanywhere.com/weather/liaoning http://zhuyijing.pythonanywhere.com/weather/jilin http://zhuyijing.pythonanywhere.com/weather/heilongjiang http://zhuyijing.pythonanywhere.com/weather/fujian * IP查询页面: http://zhuyijing.pythonanywhere.com/ip_query ##### 有效功能页面共有十个 #### 2.(部署后)云端功能 页面|功能 ---|--- 登陆页面|用户输入账号密码登陆 主页|选择目标省份天气查询/选择IP查询 天气查询页面|选择目标城市进行天气查询 IP查询页面|查询目标地点IP地址 #### 3.部署历程与心得 * [pythonanywhere](https://www.pythonanywhere.com/)官网 * [pythonanywhere部署flask](https://blog.csdn.net/weixin_45623528/article/details/105370431)教程 我在使用pythonanywhere对我的python-flask网站进行云端部署时,遇到了许多问题,环境的配置不成功(附[环境配置教程](https://www.cnblogs.com/mytianying/p/12468704.html)),压缩数据文件夹格式不对出现无法连接的错误等,最终依靠发送邮件给后台技术人员寻求指导、百度搜索教程和同班同学的指导解决了问题,部署成功 ### 五、心得及感谢 * 心得: 经过十几周对python基础语言的学习,我收获颇多。在这次期末项目的执行中,我加深了对课堂知识的印象,对代码的操作有了更深层的了解;我还深刻感受到了自己学习代码上的不足,对于这门课,我感到有些吃力,但也很充实。 从一开始的不了解python到如今成型的flask_web网站,我学会写出完整的代码与调用高德API的功能成功制作该网页,并合理运用了ProcessOn来制作流程图,以及使用Pythonanywhere在云端成功部署我的网站 * 感谢: 1. 感谢中山大学南方学院网络与新媒体专业**许智超**老师的指导(附[智超老师博客](https://www.cnblogs.com/xuzhichao/p/11481598.html)) 2. 感谢[高德API](https://lbs.amap.com/)平台对本项目的智能API技术支持 3. 感谢[processon](https://www.processon.com/diagrams)平台提供的免费在线作图、实时协作技术,让我轻松有效得作出需要的流程图 4. 感谢[python菜鸟教程](https://www.runoob.com/python/python-tutorial.html)为我提供代码借鉴和指导 5. 感谢[百度搜索](https://www.baidu.com/)平台为我搜索代码教程提供帮助 * 独立有效的外连URL:21个