git工具使用

  • 1. git
  • 2. gitee 免密登录
  • 3. pycharm 上使用git
  • 4. 绘制数据看板前的预热(给数据/数据接口在前端页面进行渲染)
    • 后端渲染:
    • 前端渲染:
    • 利用echars 绘制图像(数据写死的)
    • 利用echars 绘制图像(数据通过自己写的数据接口导入)
  • 5.补充:vs code 好用的插件

1. git

软件控制管理 ------> 版本控制 ------> 管理产品文件(代码、文档、脚本、设计稿等)的各个历史版本

1990s —> CVS / VSS —> 锁定模式

2000 —> Subversion —> SVN —> 合并模式 —> 中央服务器

2005 —> Git —> 去中心化的版本控制系统 —> 分布式版本控制系统
Unix —> Oracle
服务器操作系统:Linux —> Linus Torvalds —> 1991 —> Minix
BitKeeper —> Git

Bash —> Linux系统的人机交互环境(壳程序 - 人机接口),命令跟Windows命令行提示符相差很远。

Bash命令:

ls - list directory contents —> 列出文件夹下的内容 —> %ls
-l / -a

pwd - print working directory —> 打印当前工作目录 —> %pwd

cd - change directory —> 切换目录

mkdir - make directory —> 创建文件夹
-p —> --parents

touch —> 创建空文件或者修改文件的最后访问时间

clear —> 清除屏幕上的输出

cat —> 查看文件的内容
-n —> 给每一行添加行号

使用Git

git init —> 将一个普通的文件夹变成版本控制的仓库

git status —> 查看状态(工作区、暂存区、本地仓库是否同步)

git add —> 将文件从工作区同步到暂存区

如果第一次使用Git,再做第一次提交前要配置用户名和邮箱

git config --global user.email “jackfrued@126.com”

git config --global user.name “jackfrued”

git commit -m “…” —> 提交,将暂存区同步到本地仓库

git log —> 查看提交日志(历史)

git restore —> 用暂存区的内容恢复工作区

git reset —> 重置版本

  • –hard:让工作区、暂存区、仓库保持同步
  • –mixed:让仓库和暂存区重置,但工作区保持不变
  • –soft:让仓库重置,暂存区和工作区保持不变

git reflog —> 查看到所有的提交日志(历史和未来)

Git私服 ---->

GitHub:全球最大的代码托管平台(相当于是Git服务器,可以同步文件)

国内:

  • 码云 —> gitee.com
  • coding.net
  • 行云

git remote add origin 服务器仓库地址 —> 添加远端仓库(服务器)

git remote -v —> 查看远端仓库(服务器)

git remote rmeove origin —> 删除远端仓库

git push -u origin master —> 将本地的master分支上推到服务器

git clone 仓库地址 —> 克隆(下载)项目

git pull —> 从远端仓库(服务器)下拉文件

工作成果有冲突如何解决???
1. git pull ---> 将服务器上的代码拿下来 ---> CONFLICT ---> merge conflict
2. git diff ---> 查看有冲突的代码
3. 当面协商解决冲突代码,重新本地提交(git add / git commit)
4. git push ---> 解决冲突以后重新push到服务器

git 基本操作简易

2. gitee 免密登录

参考链接
桌面右键–> Git Bush Here

–> ssh-keygen -t rsa -C “xxxxxx@qq.com” 命令。连续3次回车

–> cd ~/.ssh

–> ls

–> cat id_rsa.pub

–> 复制公钥到这里

测试是否成功:
git clone git@gitee.com:four-wings-act-recklessly/heiheihei.git

弹出:Are you sure you want to continue connecting (yes/no/[fingerprint])?

选择 yes

如果没有让输入密码即为成功

3. pycharm 上使用git

从版本控制系统获取代码

点击上图按钮,粘贴项目 ssh 路径(做过免密登录的前提条件下)到 git 选项框 开始clone;或者也可以先右键 -->Git Bush here --> git clone ‘ssh路径’ 先把工程弄下来再放到pycharm中

先创建虚拟环境:注意虚拟环境路径最好是: ./工程名/venv

.gitignore文件

.idea# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class# C extensions
*.so# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec# Installer logs
pip-log.txt
pip-delete-this-directory.txt# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/# Translations
*.mo
*.pot# Django stuff:
*.log
local_settings.py
db.sqlite3# Flask stuff:
instance/
.webassets-cache# Scrapy stuff:
.scrapy# Sphinx documentation
docs/_build/# PyBuilder
target/# Jupyter Notebook
.ipynb_checkpoints# IPython
profile_default/
ipython_config.py# pyenv
.python-version# celery beat schedule file
celerybeat-schedule# SageMath parsed files
*.sage.py# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/# Spyder project settings
.spyderproject
.spyproject# Rope project settings
.ropeproject# mkdocs documentation
/site# mypy
.mypy_cache/
.dmypy.json
dmypy.json# Pyre type checker
.pyre/

虚拟环境创建好之后导入库

pip install flask
pip install pymysql
pip install freeze
pip freeze > requirements.txt
注意后面导入新库的时候都需要执行这句:pip freeze > requirements.txt

pip install requests
pip freeze > requirements.txt

4. 绘制数据看板前的预热(给数据/数据接口在前端页面进行渲染)

后端渲染:

在服务器端把动态页面生成出来,然后把渲染好的HTML页面给到浏览器。
后端渲染的方式在服务器并发访问量较大的时候,会增加服务器的开销,导致服务器效率低下,响应较慢。

from flask import Flaskapp = Flask(__name__)@app.route('/test') #可以写成 @app.route('/') 我这里不这样写,因为这部分笔记是后来补充的,不能和已经有的@app.route('/')一样
def show_index():books = ["Python1","Python2","Python3","Python4","Python5","Python6"]content = '<h1 style="color: red">hello ,world!</h1>'content += '<hr>'content += f'<p>今天推荐阅读的书籍是: </p>'content += '<ul>'for book in books:content += f'<li>《{book}》</li>'content += '</ul>'return contentif __name__ == '__main__':app.run(host='0.0.0.0', port=8000, debug=True)

前端渲染:

前端渲染︰不在服务器端渲染页面,服务器只负责提供数据,渲染页面的操作交给浏览器中的JavaScript来完成。

前端渲染也称为前后端分离的开发,后端开发者不需要有前端知识,因为他们只需要把提供数据的服务做好;同理,前端开发者也不需要有任何后端的知识,他们只需要调用后端提供的数据接口获取数据,
然后通过JavaScript将动态内容渲染到页面上。

下图是相关文件需要移动到新的位置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body>
<!--
标签–承载内容- content
css -层叠样式表–渲染页面- display
JavaScript - s -交互行为- behavior
-->
<h1><ul><li>{{ jitang }}</li></ul>
</h1>
<hr>
<p>今天推荐阅读的书籍:</p>
<ul><li>{{ book }}</li>
</ul>
<img src="/static/images/guido.jpg" width="150">
</body>
</html>

静态页面运行时,不能直接点运行

http://127.0.0.1:8000/static/html/index.html

改进:main.py 加入重定向之后可以直接访问了

import random
import requests
from flask import Flask, redirectapp = Flask(__name__)# http://127.0.0.1:8000/
@app.route('/')
def show_index():# 请求首页,重定向到 /static/html/index.htmlreturn redirect('/static/html/index.html')if __name__ == '__main__':app.run(port=8000, debug=True)

下一步前端请求自己写的接口,申请数据渲染

main.py

import random
import requests
from flask import Flask, redirectapp = Flask(__name__)# http://127.0.0.1:8000/
@app.route('/')
def show_index():# 请求首页,重定向到 /static/html/index.htmlreturn redirect('/static/html/index.html')
@app.route('/api/recs')
def get_recommendations():books = ["Python1","Python2","Python3","Python4","Python5","Python6"]n = random.randint(2, 5)selected_books = random.sample(books, n)resp = requests.get('http://api.tianapi.com/txapi/dujitang/index?key=d116541b64b5ec7f0b93996ec485a7c3')jitang = '今天没有毒鸡汤'if resp.status_code == 200:result = resp.json()if result['code'] == 200:jitang = result['newslist'][0]['content']return {'books':selected_books,'jitang':jitang}if __name__ == '__main__':app.run(port=8000, debug=True)

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body>
<!--标签–承载内容- content
css -层叠样式表–渲染页面- display
JavaScript - s -交互行为- behavior前端渲染︰通过JavaScript向服务器发起异步请求获取SON数据,通过DOM操作对页面进行局部刷新
通过DOM(document对象)可以在页面上创建新标签、删除标签、更新标签内容、修改标签样式等....Vue.js -前端渲染框架 - 简化原生JavaScript-->
<div id="app"><h3>{{ jitang }}</h3>
<hr>
<p>今天推荐阅读的书籍:</p>
<ul><li v-for="book in books">{{ book }}</li>
</ul>
</div><img src="/static/images/guido.jpg" width="150">
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
<script>let app = new Vue({el:'#app',data:{jitang:'',books:[]},created:function(){//Promise 对象fetch('/api/recs').then(resp => resp.json()).then(json=>{this.jitang = json.jitangthis.books = json.books})}})
</script>
</body>
</html>

打开浏览器刷新

http://127.0.0.1:8000/static/html/index.html

利用echars 绘制图像(数据写死的)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title><style>#main {width: 400px;height: 300px;border: 1px solid black;}</style>
</head>
<body>
<!--标签–承载内容- content
css -层叠样式表–渲染页面- display
JavaScript - s -交互行为- behavior前端渲染︰通过JavaScript向服务器发起异步请求获取SON数据,通过DOM操作对页面进行局部刷新
通过DOM(document对象)可以在页面上创建新标签、删除标签、更新标签内容、修改标签样式等....Vue.js -前端渲染框架 - 简化原生JavaScript-->
<div id="app"><h3>{{ jitang }}</h3>
<hr>
<p>今天推荐阅读的书籍:</p>
<ul><li v-for="book in books">{{ book }}</li>
</ul>
</div><div id="main"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
<script>let app = new Vue({el:'#app',data:{jitang:'',books:[]},created:function(){//Promise 对象fetch('/api/recs').then(resp => resp.json()).then(json=>{this.jitang = json.jitangthis.books = json.books})}})
</script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.0/echarts.min.js"></script>
<script>//初始化绘图使用的div标签let myChart =echarts.init(document.querySelector('#main'))//let option = {//图例legend: {data: ['A组销量','B组销量']},//xxAxis: {data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]},//yyAxis: {},//数据系列series: [{name: 'A组销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]},{name: 'B组销量',type: 'bar',data: [5, 23, 26, 19, 8, 20]}]}myChart.setOption(option)
</script>
</body>
</html>

output:

利用echars 绘制图像(数据通过自己写的数据接口导入)

main.py

import randomimport requests
from flask import Flask, redirectapp = Flask(__name__)@app.route('/')
def show_index():# 请求首页,重定向到/static/html/index.htmlreturn redirect('/static/html/index.html')@app.route('/api/sales')
def get_sales_data():group_a = [random.randint(5, 50) for _ in range(6)]group_b = [random.randint(5, 50) for _ in range(6)]return {'legend': ['销售A组', '销售B组'],'xData': ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'],'yData': [group_a, group_b]}@app.route('/api/recs')
def get_recommendations():books = ['Python从入门到实践','MySQL必知必会','数据思维','人工智能导论','PyTorch实战','利用Python做数据分析']n = random.randint(2, 5)selected_books = random.sample(books, n)# 通过request请求三方服务获取毒鸡汤数据resp = requests.get('http://api.tianapi.com/txapi/dujitang/index?key=d116541b64b5ec7f0b93996ec485a7c3')jitang = '今天没有毒鸡汤'if resp.status_code == 200:result = resp.json()if result['code'] == 200:jitang = result['newslist'][0]['content']return {'books': selected_books, 'jitang': jitang}if __name__ == '__main__':app.run(host='0.0.0.0', port=8000, debug=True)

index.py

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title><style>#main {width: 400px;height: 300px;border: 1px solid black;}</style>
</head>
<body><!--标签 - 承载内容 - contentCSS - 层叠样式表 - 渲染页面 - displayJavaScript - JS - 交互行为 - behavior前端渲染:通过JavaScript向服务器发起异步请求获取JSON数据,通过DOM操作对页面进行局部刷新通过DOM(document对象)可以在页面上创建新标签、删除标签、更新标签内容、修改标签样式等……Vue.js - 前端渲染框架 - 简化原生JavaScript代码--><div id="app"><h3>{{ jitang }}</h3><hr><p>今天推荐阅读的书籍是:</p><ul><li v-for="book in books">{{ book }}</li></ul></div><div id="main"></div><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script><script>// JavaScriptlet app = new Vue({el: '#app',data: {jitang: '',books: []},created() {fetch('/api/recs').then(resp => resp.json()).then(json => {this.jitang = json.jitangthis.books = json.books})}})</script><script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.0/echarts.min.js"></script><script>// 初始化绘图使用的div标签(初始化绘图用的画布对象)let myChart = echarts.init(document.querySelector('#main'))// 创建图表选项对象(绘图时需要使用的数组)let option = {// 图例legend: {data: []},// x轴xAxis: {data: []},// y轴yAxis: {},// 数据系列series: [{name: '',type: 'bar',data: []},{name: '',type: 'bar',data: []}]}function refreshData() {// 发起获取数据的异步请求fetch('/api/sales').then(resp => resp.json()).then(json => {option.legend.data = json.legendoption.xAxis.data = json.xDatafor (let i = 0; i < option.series.length; ++i) {option.series[i].name = json.legend[i]option.series[i].data = json.yData[i]}// 数据准备就绪,将数据渲染到echarts图表上myChart.setOption(option)// 5秒钟以后再次调用这个函数setTimeout(refreshData, 5000)})}refreshData()</script>
</body>
</html>

output:

数据接口:

http://127.0.0.1:8000/api/sales

5.补充:vs code 好用的插件


在vscode 上编辑代码

找到改文件,拖到VS code 中

之后就可以编辑了,pycham可以同步

作业:

1.连数据库画折线图

2,数据库里建表,所有内容均从数据库里读出来,销售组,类别,销售信息

Python 数据分析 git 工具使用 flask学习相关推荐

  1. 数据载入、存储及文件格式——《利用python数据分析》第六章学习

    数据载入.存储及文件格式--<利用python数据分析>第六章学习 前言 这次带来第六章的学习笔记,希望这次效率高点,快点写完. 代码环境这次小升级,Pycharm 2021.3 + An ...

  2. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  3. Python数据分析:双色球的深度学习预测

    双色球是福利彩票的一种玩法,已经卖了有很多年.之前在支付宝上app可以买的,每天2块钱很有益身心健康,比LOL有积极意义.对于双色球这门游戏,刚开始买的时候是纯粹靠感觉,后来百度又看到了百度预测(虽然 ...

  4. python数据分析入门之数据类型(菜鸟学习总结篇)

    前言:好久好久好久没有更新博客了,为了冲击明年的美赛,不得不先暂时放下爬虫的学习,开始学习数据分析,因为之前的两篇文章只是使用open()的方式再配合正则表达的方式进行数据分割后的数据可视化,如果只是 ...

  5. Python数据库ORM工具sqlalchemy的学习笔记

    SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(sqlite,mysql,postgres, mong ...

  6. python学籍管理系统 flask_taskday05-Python之flask学习 web开发最基本的需要(特别详细且适用)...

    1.首先一个Flask的Web项目的创建需求一(文章概述):一:必须实现命令工具管理App,用于在命令行输入命令对项目进行管理,对后期多多益善 二:必须实现"蓝图"管理,用于将ap ...

  7. python 数据分析--数据处理工具Pandas(2)

    数据处理模块--Pandas 4. Pandas处理字符串和日期数据 5. Pandas 数据清洗 5.1 重复观测处理 5.2 缺失值处理 5.2.1 删除法 5.2.2 替换法 5.3 异常值处理 ...

  8. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记1:第一章 NumPy快速入门

    NumPy快速入门 1.1 Python NumPy是基于Python的,因此在安装NumPy之前,需要先安装Python.某些操作系统已经默认安装有Python环境,但仍需检查Python的版本是否 ...

  9. python数据分析分析(8G)学习视频免费分享

    相关数据下载,请关注公众号"一行数据",回复"python可视化"免费获得 很多人学python是从数据分析开始的,一方面进行可视化绘图很容易产生成就感,另一方 ...

最新文章

  1. Java垃圾回收之新生代垃圾收集器
  2. 全面梳理关系型数据库和 NoSQL 的使用情景
  3. Cortex‐M3-总线接口
  4. 在Visual Studio Code里编写ABAP代码
  5. java 按钮组_java中创建一个按钮组,有10个按钮,分别写着0,1,2,,3。。。。9
  6. qqp2011java_腾讯开放平台中实现QQ登陆的功能
  7. 某大厂JVM常见面试题(二)吐血整理
  8. C++ 类模板语法初步01
  9. 企业到底需要何种数据分析挖掘工具?
  10. Python进阶练习题,新手快码起来
  11. python 大小端转换_Python bin文件大小端转换
  12. 时间序列分析ARMA模型-学习笔记
  13. archlinux fcitx5-rime五笔输入法
  14. 仿购物网站-HTML手写代码(仅提供参考)
  15. Android封装拍照sdk,Android 短视频拍摄、拍照滤镜 第三方库SDK
  16. adb shell循环命令_android adb实用命令小结
  17. Spark的Cache和Checkpoint区别和联系拾遗
  18. openssl开发库安装时的踩坑指南
  19. 使用Jsoup技术获取`阿里拍卖`中法院拍卖的所有拍卖品
  20. 系统找不到zlib.dll文件的解决方法。zlib编译和使用

热门文章

  1. NTFS下的USN日志文件
  2. 【美食记】传统非遗美食——鬼包子
  3. 7-2 统计英文字母和数字字符[2]
  4. 惠普光影精灵拆机换屏幕_惠普光影精灵3换电池小记
  5. true在java_使用truelicense实现用于JAVA工程license机制
  6. 读书杂抄之《挪威的森林》
  7. [附源码]Java计算机毕业设计SSM鞍山丘比特房屋租赁管理系统
  8. 使用 Wrapper 自定义SQL
  9. Javafx中切换输入法
  10. 计算机课堂听课情况记录表模板,教师听课评课情况记录表范例及模板.doc