# python_final **Repository Path**: xu_yi_rong/python_final ## Basic Information - **Project Name**: python_final - **Description**: Python课程期末项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-01-18 - **Last Updated**: 2022-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python期末项目 文档撰写人:许伊榕 撰写时间:2021-1-24 --- ## 一、项目名称 ### 1、项目名称:小E的服务系统 小E服务系统是一个可以实时查询各城市天气系统及进行骑行规划的一个网站 ### 2、项目意义 本项目利用Python和高德API中的地理编码API、天气查询API和骑行路径规划API,将这三种API功能进行集成,添加到本项目中,旨在解决以下问题: 1、用户通过天气查询功能,在出行前,能实时了解各个城市的天气,以做好出门的防护准备; 2、用户通过骑行路径规划功能,在外骑行时,可以通过骑行路径规划到达自己想要的地方。 ### 3、功能流程图 ![功能流程图](https://images.gitee.com/uploads/images/2021/0124/172936_ed25222b_5677533.jpeg "功能流程图.jpg") ### 4、项目各界面截图 - 一共11个页面 - 首页 ![首页](https://images.gitee.com/uploads/images/2021/0124/173938_1895615a_5677533.png "首页.png") - 注册 ![注册](https://images.gitee.com/uploads/images/2021/0124/174047_5545ef9a_5677533.png "注册.png") - 注册成功 ![注册成功](https://images.gitee.com/uploads/images/2021/0124/174113_18324d05_5677533.png "注册成功.png") - 登录 ![登录](https://images.gitee.com/uploads/images/2021/0124/174024_eb92b1ca_5677533.png "登录.png") - 登录失败 ![登录失败](https://images.gitee.com/uploads/images/2021/0124/174157_ee7e9146_5677533.png "登录失败.png") - 登录成功——功能选择 ![功能选择](https://images.gitee.com/uploads/images/2021/0124/174216_1024678f_5677533.png "功能选择.png") - 天气查询 ![天气查询](https://images.gitee.com/uploads/images/2021/0124/174245_3b3a47b5_5677533.png "天气查询.png") - 天气查询结果 ![天气查询结果](https://images.gitee.com/uploads/images/2021/0124/174317_b7b43cc3_5677533.png "天气查询结果.png") - 骑行路径规划 ![骑行路径规划](https://images.gitee.com/uploads/images/2021/0124/174345_9e80c844_5677533.png "骑行路径规划.png") - 骑行路径规划结果 ![骑行路径规划结果](https://images.gitee.com/uploads/images/2021/0124/174426_b1f5d6b3_5677533.png "骑行路径规划结果.png") - 查看日志 ![查看日志](https://images.gitee.com/uploads/images/2021/0124/174451_d33d35a0_5677533.png "日志.png") ## 二、问题表诉 ### 1、项目基本功能 实现用户注册和登录的基本操作 ### 2、项目核心功能 1、用户通过天气查询功能,在出行前,能实时了解各个城市的天气,以做好出门的防护准备; 2、用户通过骑行路径规划功能,在外骑行时,可以通过骑行路径规划到达自己想要的地方。 ### 3、用户画像 | ![智秀](https://images.gitee.com/uploads/images/2021/0122/103610_58627204_5677533.png) | 姓名:秀秀;年龄:20岁;职业:大学生 | |---|---| | 用户简介 | 秀秀是一名中山大学南方学院的学生,她每天基本都要出门,每天都会查看天气。她还喜欢出门骑车运动,每次都会去不同的地方。 | | 当下痛点 | 每次想要出门骑行时,都要打开不用的产品,感觉浪费时间。 | | 使用情景 | 秀秀出门骑行时,打开了小E的服务系统,在系统中她查找到她目前所在的城市的天气。并使用骑行路径规划功能所提供的路线,开始她的骑行之旅。| ### 4、价值主张画布 ![价值主张画布](https://images.gitee.com/uploads/images/2021/0124/182219_8c3d8ef2_5677533.jpeg "价值主张画布.jpg") ## 三、解决方案表诉 ### 1、整体项目规划 - 在进行这次的python项目规划的时候,想要做的是功能。因为不想做一个单一的功能的项目,所以就在策划的时候,准备了多了功能,最终选中了高德的天气查询API和骑行路径规划API来进行功能的开发。做一个公开使用的服务系统首先要做的便是做一个注册登录页面,用户通过注册账号和密码后,便可登录到系统中来。用户进入系统后,就可以选择自己想要查询的功能,天气查询功能和骑行路径规划功能,系统以此来提供服务。 ### 2、基本知识点 | 步骤 | 步骤描述 | Python基础知识点 | |---|---|---| | 第一步 | 调用高德API | API的调用 | | 第二步 | 通过Flask架构网站,呈现网页和实现网站功能 | Flask的使用和函数 | | 第三步 | 对调用出的API所返回的参数进行选择和呈现 | 列表和字典取值 | | 第四步 | 实现日志的读取和页面的呈现 | 日志 | | 第五步 | 修改样式,优化网站 | HTML、CSS | | 第六步 | 进行云端部署 | pythonanywhere | ## 四、编程功能的基本描述 ### 1、API的调用 在确定你想做什么项目之后,第一步就是你要去寻找适合你的项目的API并进行调用。结合我自己的项目,我选择的是高德API,通过获取高德的密钥和阅读高德平台上所提供的API文档,将天气查询API和骑行路径规划API的代码放置到我的pythonwebtest1.py文件中,通过增删改查的一些代码,解决bug,使网站功能得以初步实现。 - API的调用展整个项目的15%,API的学习成本大约为20天。 ### 2、Flask的使用 在调用好API之后,第二步是将调用好的API通过Python的Flask模块进行网站架构,通过python的函数将API的功能实现在前端页面中,并把设计编写好的HTML和网站的CSS样式连接入网站,并通过一步步对代码以及样式的修改,使整个项目网站得以在web中呈现。在学会使用Flask模块之前,需要学会运用Python的一些基本知识点,如列表、字典、函数等等。 - Flask的使用占整个项目工作的35%,Flask的学习成本大约为30天。 ### 3、选择需要的API返回参数并呈现 项目第三步即是将API功能成功实现后所返回的众多参数进行选择,通过列表和字典取值等方式,将我们所需的参数进行选择并呈现在页面中,将其可视化处理,方便用户观看和获取信息。 - 列表和字典取值占整个项目工作的10%,列表和字典取值的学习成本大约为7天。 ### 4、日志的读取和呈现 项目第四步便是建立云端日志记录系统,将整个网站的数据调用记录进日志以及通过浏览日志表格的形式给呈现在网站中,具备独立的后台日志管理文件。 - 日志占整个项目工作的10%,日志的学习成本大约为2天。 ### 5、网站的优化和样式的修改 项目第五步在网站建立好后,功能得以成功调用实现。接下来便是对网站的外观和布局进行调整。这其中便涉及了HTML和CSS的内容,通过对样式的修改和各部件的显示位置的修改,使得网站更为美观,也让用户在使用的时候更加具有体验感。 - HTML和CSS占整个项目工作的20%,HTML和CSS的学习成本大约为20天 ### 6、云端部署 项目第六步即是在云端部署网站,使网站可以通过网站的形式在不同的设备上方便使用,这里使用Pythonanywhere进行云端部署,完成Python网站项目。 Pythonanywhere占整个项目工作的10%,Pythonanywhere的学习成本大约为30分钟。 ## 五、云端项目部署基本描述 ### 1、pythonanywhere的链接 - [小E的服务系统](http://xuyirong.pythonanywhere.com/) ### 2、pythonanywhere所有链接(想要打开所有链接,需要先打开首页,才能进行下去) - 首页:http://xuyirong.pythonanywhere.com/ - 登录页:http://xuyirong.pythonanywhere.com/login? - 登录失败:http://xuyirong.pythonanywhere.com/loginfail - 注册页:http://xuyirong.pythonanywhere.com/registered1? - 注册成功页:http://xuyirong.pythonanywhere.com/registeredok1 - 登录成功并选择功能:http://xuyirong.pythonanywhere.com/start - 天气查询:http://xuyirong.pythonanywhere.com/tianqi - 天气查询结果:http://xuyirong.pythonanywhere.com/search - 骑行路径规划:http://xuyirong.pythonanywhere.com/bicycle - 骑行路径规划结果:http://xuyirong.pythonanywhere.com/bicyclejieguo - 查看日志:http://xuyirong.pythonanywhere.com/viewlog ### 3、页面结果与功能介绍图 ![页面结果与功能介绍图](https://images.gitee.com/uploads/images/2021/0124/205334_135b0788_5677533.png "页面结构与功能介绍图.png") ### 4、云端功能和部署心得 - 云端功能:可以上传新的文件以及直接修改文件,可以进行新的部署,在联网情况下可在每一台设备上使用部署好的网站。 - 部署心得:先在Pythonanywhere官网上注册,拥有自己的账号后,将项目压缩文件包(zip格式)上传,通过控制台进行解压,再移动到创建好的mysite文件夹中,在控制台进行部署操作,使用自带数据库,修改Pythonanywhere给的数据库用户名和密码,更新云端部署,打开网站检测是否部署成功,最终完成云端部署。云端部署还是很简单的,只要把操作步骤学清楚,部署一个网站其实用不了很多时间也不会很麻烦,可以很快将自己的网站部署好,十分值得学习使用。 ## 六、学习/实践心得总结及感谢 ## 1、心得总结 在这一学期的python学习中,我是属于从零开始的小白,对于代码我是无从所知,但是通过老师在课堂上的讲解、自己课下的练习、同学的帮助,我才一点点积累起来。但是在这次python期末项目的开发过程中,我深刻的认识到我自己代码能力的不足,常常会出现很多bug,并且需要花费非常多的时间去解决。很多时候出现问题时,我都无从下手去解决问题,特别是这次的期末项目,我意识到自己的代码能力十分薄弱,需要同学的帮助我才能逐渐解决这些问题。在很多时候,我经常会因为自己的不细心而导致代码的出错,一出错我就会十分不耐烦,时常想要放弃,但是老师和同学们一次又一次的鼓励及帮助,让我坚持学习python。我也知道,我自己的代码能力很薄弱,需要在课后花费更多的时间去学习。刚开始我是不喜欢python这门课程的,因为作为一个偏向文科方向的人来说,学习代码我是不愿意的。但是,我很感谢这学期的python课程,虽然说不上喜欢python,但是python这门课让我拥有编程思维,多多少少也了解python,也学会了如何运用网上的资源去解决问题。很感谢这次期末项目给我带来的思考和挑战,让我在这些一步步的学习和解决当中得到了充足的提升。 ## 2、感谢 首先,我要在这里感谢许智超老师和游鸽老师。在这一学期我所上的python课程,是由许智超老师带的课,智超老师在课上详细给我讲解了各种关于python的知识点,我学会运用网上的资源去解决问题也是在智超老师的指导下才学会的。是老师们的悉心指导和教学,让我学会了更多的知识,也学会去解决更多的困难。其次,我要感谢网新专业的同学们,是你们的陪伴,让我感受到网新专业的温暖,是大家的互帮互助、相互交流,才能让我解决一个又一个的代码问题,让我看到希望。特别是在这次期末项目中,高湘林同学、高智浩同学等等同学对我提供了帮助。最后我要感谢给予我鼓励的庄家薇同学、莫娇娇同学等等同学,还有要感谢我的舍友们每一次给我的鼓励,是你们让我有坚持下去的动力! 1. 感谢许智超老师的博客 - [博客园-智超(Zhichao)](https://www.cnblogs.com/xuzhichao/) 2. 感谢高德API提供的web服务 - [天气查询技术文档](https://lbs.amap.com/api/webservice/guide/api/weatherinfo) - [骑行路径规划技术文档](https://lbs.amap.com/api/webservice/guide/api/direction#t8) 3. 感谢Pythonanywhere提供免费的云端部署服务 - [Pythonanywhere官网](https://www.pythonanywhere.com/) 4. 感谢CSDN技术社区中的博客们提供的技术支持 - [pythonanywhere 部署 Python web项目](https://blog.csdn.net/qq_15260769/article/details/83182185) - [PythonAnywhere部署Flask项目](https://blog.csdn.net/weixin_45623528/article/details/105370431) 5. 感谢简书中的博客们提供的技术支持 - [手把手教你在pythonanywhere上部署Flask项目](https://www.jianshu.com/p/5d120cfd386e) - [学习flask的番外5之Pythonanywhere部署Flask项目](https://www.jianshu.com/p/5d120cfd386e) 6. 感谢菜鸟教程提供的HTML、CSS和Python3教程 - [HTML 元素](https://www.runoob.com/html/html-elements.html) - [HTML 颜色名](https://www.runoob.com/html/html-colornames.html) - [HTML 属性](https://www.runoob.com/html/html-attributes.html) - [HTML CSS](https://www.runoob.com/html/html-css.html) - [HTML 区块](https://www.runoob.com/html/html-blocks.html) - [CSS 语法](https://www.runoob.com/css/css-syntax.html) - [CSS 背景](https://www.runoob.com/css/css-background.html) - [CSS 圆角](https://www.runoob.com/css3/css3-border-radius.html) - [CSS 按钮](https://www.runoob.com/css3/css3-buttons.html) - [Python3 内置函数](https://www.runoob.com/python3/python3-built-in-functions.html) - [Python 错误和异常](https://www.runoob.com/python3/python3-errors-execptions.html) - [Python JSON数据解析](https://www.runoob.com/python3/python3-json.html)