# python期末项目 **Repository Path**: deng_ying_xin/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**: 1 - **Forks**: 0 - **Created**: 2021-01-24 - **Last Updated**: 2021-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python 语言基础项目技术文档 ## 一、项目介绍 ### 1. 项目标题与简介[网站链接](http://dengyingxin01.pythonanywhere.com/) ### 若出现以下情况,请输入账号:dengyingxin01密码:dengyingxin ![输入图片说明](https://gitee.com/deng_ying_xin/python-final-project/raw/master/images/firstlogin.jpg "在这里输入图片标题") ### 设置了固定的账号密码,请输入: ### 登录账号:admin ### 登录密码:admin123 ### [网站链接](http://dengyingxin01.pythonanywhere.com/) 这是一个搜索到广州房价数据的一个数据型网站。能够通过现有的调动数据做出一个广州房价归类组合,可以让当代人清楚了解他们所想的居住的房子在哪一个地段哪一个价格。让人们清楚知道是一个放假数据网站。 ![网站简单功能](https://gitee.com/deng_ying_xin/python-final-project/raw/master/images/%E7%BD%91%E7%AB%99%E7%AE%80%E5%8D%95%E5%8A%9F%E8%83%BD.png "网站简单功能") ### 2. 问题表述 用户画象:已经有经济能力不限年龄、性别想要居住在广州的群体 用户使用场景:在空余的时间里,可以登录网站查看不同区域、地段的放假的一个变化,同时给用户提供一个和他们同样奋斗买房的一个年龄群的一个分布图,给用户提供一个房价数据平台。 用户任务:在网站查看放假数据 用户痛点:房价是一个十分民生并且被人们所知关注的一个热门话题,大家都希望在自己所在的地方有一间房子,但是楼盘市场是一个热门的市场,房价并不容易下降,并且会出现热涨的情况,需要人们时刻关注。 - [广州房价走势 ](http://gz.jiwu.com/fangjia/) - [广东楼市分析:广州哪些房子值得买?买房者心急如焚!](https://baijiahao.baidu.com/s?id=1665117125589890288&wfr=spider&for=pc) 产品益点:在用户头疼不知道买哪里的房子,提供用户广州房价数据。 ## 二、解决方案 ## 1. 项目规划与知识点 本项目主要通过登陆系统、图文上传与展示、链接数据3个功能,并配合 Bootstrap的基础模版及 HTML 、CSS 相关知识来完成,以下为其中涉及到的Python基础知识点: ## 2. 编程功能的基本描述 - ### [HTTP 请求方法 ](https://blog.csdn.net/weixin_42981419/article/details/86162244) ```python @app.route('/', methods=['GET', 'POST']) def isLogin(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] if username == 'admin' and password == 'admin123': resp = make_response(redirect('/tu')) resp.set_cookie('username', username) return resp else: return '用户名或密码错误!' return render_template('login.html') ``` - ### [HTML 表单](https://www.w3school.com.cn/html/html_forms.asp),让用户输入账号信息数据 ```python
``` - ### [Flask 第三方模块](https://blog.csdn.net/lj1029351265/article/details/82153260)的使用 ```python from flask import Flask from flask import render_template from flask import request,make_response,redirect import sqlSearch import fenye ``` - ### [条件判断](https://www.runoob.com/python/python-if-statement.html)语句 ```python def isLogin(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] if username == 'admin' and password == 'admin123': resp = make_response(redirect('/tu')) resp.set_cookie('username', username) return resp else: return '用户名或密码错误!' return render_template('login.html') ``` - ### [for 循环](https://www.runoob.com/python/python-for-loop.html)语句 ```python def chuTu(): try: data = sqlSearch.searchAll() for i in data: fangDate = i['date'] if fangDate != '暂无数据': fangDate = int(fangDate) if fangDate >= 2019: jinTwoYear.append(fangDate) elif fangDate >= 2016 and fangDate <= 2018: jinTwoFiveYear.append(fangDate) elif fangDate >= 2010 and fangDate <= 2015: jinFiveTenYear.append(fangDate) else: jinTenYear.append(fangDate) if result.get(i['address']): # 则添加进数组 result[i['address']].append(i['price']) else: # 没有则新建一个数组,并将结果存入 result[i['address']] = [i['price']] ``` - ### [数据库](https://www.runoob.com/sqlite/sqlite-python.html)的使用 ```python import sqlite3 from os import path ROOT = path.dirname(path.realpath(__file__)) def search(num): conn = sqlite3.connect(path.join(ROOT, '1.db')) c = conn.cursor() 【以下省略,可去文件查看】 ``` - ### [列表](https://www.runoob.com/python/python-lists.html)的使用 ```python def index(): isLogin = request.cookies.get('username') == 'admin' if isLogin: p = request.args.get("p") if p: my_list = sqlSearch.search(int(p)) fen = fenye.main(int(p)) return render_template( # 渲染模板语言 'test.html', my_list=my_list, fen=fen ) ``` 在敲代码的过程中会遇到很多困难,会报错,查看Pycharm的报错信息以及网上的[错误代码](https://blog.csdn.net/qq_41940950/article/details/83350271)一一进行纠错。 [python-报错信息及解决方法](https://blog.csdn.net/lady_killer9/article/details/100761331) ## 3. 云端项目部署的基本描述 ### 3.1 页面链接与页面功能介绍 - 登陆页面 [登录页面](http://dengyingxin01.pythonanywhere.com/) - 图片页面 [图片页面](http://dengyingxin01.pythonanywhere.com/tu) - 房价页面(进行做出一个分页,分页共30页) [房价页面](http://dengyingxin01.pythonanywhere.com/fang) ### 3.2 数据流程图 ![数据流程图](https://gitee.com/deng_ying_xin/python-final-project/raw/master/images/%E6%95%B0%E6%8D%AE%E6%B5%81%E7%A8%8B%E5%9B%BE.png "数据流程图") ### 3.3 云端功能 内置账号与密码安全登录,以及链接房价数据库,随时更新。 ### 3.4 部署心得 因为之前并没有实践性操作很多,所以遇到了很多困难。 例如: 1. 云端部署的时候并没有配置好,部署失败。[【解决方法】](https://www.jianshu.com/p/5d120cfd386e) 2. [安装flask模块](https://blog.csdn.net/weixin_39639919/article/details/110688137) 3. 在部署在PythonAnywhere上的Flask应用程序,一直出现404.后来找到[解决404方法。](https://www.pythonheidong.com/blog/article/772453/82bce943b151a3bb19dd/) 4. 了解了python最小的数据库[sqlite3](https://blog.csdn.net/qq_29187987/article/details/91436293),并且[使用Python操作SQLite3数据库](https://blog.csdn.net/jianzuoguang/article/details/80437574),减少代码量。 5. 学习并且运用全新的代码——matplotlib.pyplot , [Python 绘图包 Matplotlib Pyplot 教程](https://blog.csdn.net/qq_34770012/article/details/89277738?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161147040816780265442232%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=161147040816780265442232&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-89277738.first_rank_v2_pc_rank_v29&utm_term=matplotlib.pyplot),以及学会自主查看参数—— [matplotlib.pyplot.plot()参数详解](https://blog.csdn.net/sinat_36219858/article/details/79800460?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161147040816780265442232%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=161147040816780265442232&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-10-79800460.first_rank_v2_pc_rank_v29&utm_term=matplotlib.pyplot)。 ## 三、学习/实践心得总 本次的项目完成的时候十分的感谢游鸽老师以及许智超老师在课堂上的讲授,特别感谢[许智超老师的博客](https://www.cnblogs.com/xuzhichao/p/11481598.html),以及教程平台和代码社区平台,让我们有开源的代码可以使用,如[Bootstrap](https://getbootstrap.com/)开源的模板。编程对于我而言是一个十分具有挑战性的一门学问,作为一名文科生,逻辑思维有点弱,因此在学习的过程中是有点吃力的,但是我觉得编程是有趣的,因为每次完成一小小的板块就会有成就感,虽然编程很难,但是我觉得这段时间是十分的有趣并且有意义的,我也会继续的学下去的。 --- 独特有效外连URL:20个