当前位置: 首页 > news >正文

python之flask安装以及使用

1 flask介绍

Flask是一个非常小的Python Web框架,被称为微型框架;只提供了一个稳健的核心,其他功能全部是通过扩展实现的;意思就是我们可以根据项目的需要量身定制,也意味着我们需要学习各种扩展库的使用。

2 python虚拟环境搭建

python虚拟环境管理方法:
​
1.virtualenv
2.Virtualenvwrapper
3.conda
4.pipenv

3 pipenv使用

┌──(kali㉿kali)-[~/Desktop/python_code]
└─$ ls       
flask1    
┌──(kali㉿kali)-[~/Desktop/python_code]
└─$ cd flask1                                         
┌──(kali㉿kali)-[~/Desktop/python_code/flask1]
└─$ pipenv shell    

┌──(flask1-l5Pm-i-x)─(kali㉿kali)-[~/Desktop/python_code/flask1]
└─$ ls
Pipfile
#Pipfile 等于安装的插件包名
┌──(flask1-l5Pm-i-x)─(kali㉿kali)-[~/Desktop/python_code/flask1]
└─$ cat Pipfile 
安装 flask
┌──(flask1-l5Pm-i-x)─(kali㉿kali)-[~/Desktop/python_code/flask1]
└─$ pipenv install flask
​

4 flask第一个应用

新建app.py

#!/usr/bin/env python3
​
from flask import Flask
​
#初始化
app =Flask(__name__)
​
@app.route('/')
def index():return  'Hello World!'
​
if __name__ == '__main__':app.run()

执行app.py

游览器效果

5 路由和视图函数

#!/usr/bin/env python3  
# 这一行告诉系统使用哪个解释器来执行脚本,这里指定为 python3  from flask import Flask  
# 从flask模块中导入Flask类,用于创建Flask web应用程序实例  # 初始化  
app = Flask(__name__)  
# 创建一个Flask应用程序实例,并赋值给变量app。__name__是当前模块的名字,代表应用程序的根路径  # 设置多个路由  
@app.route('/')  
# 定义一个路由装饰器,当访问根路径'/'时,会调用下面的index函数  
def index():  return 'Hello World!'  
# 定义一个视图函数index,当访问'/'路径时,返回'Hello World!'字符串  @app.route('/a')  
# 定义另一个路由装饰器,当访问'/a'路径时,会调用下面的add函数  
def add():  return '1+1=2'  
# 定义一个视图函数add,当访问'/a'路径时,返回'1+1=2'字符串  @app.route('/user/<username>')  
# 定义一个带有动态部分的路由装饰器,'<username>'是一个动态部分,可以匹配任何字符串  
def user_index(username):  # 在函数中指明变量名称username,就能获取到通过路由传入的变量username  return 'Hello {} '.format(username)  
# 定义一个视图函数user_index,该函数接受一个参数username,这是从路由动态部分获取的。函数返回'Hello '加上用户名  @app.route('/post/<int:post_id>')  
# 定义一个带有动态部分且类型指定的路由装饰器,'<int:post_id>'表示动态部分必须是整数类型  
def show_post(post_id):  return 'Post {} '.format(post_id)  
# 定义一个视图函数show_post,该函数接受一个整数类型的参数post_id,这是从路由动态部分获取的。函数返回'Post '加上文章ID  if __name__ == '__main__':  # 判断当前脚本是否作为主程序运行  app.run(debug=True)  
​

6URL重定向

#!/usr/bin/env python3  # 导入 Flask 框架  
from flask import Flask  
from flask import url_for  
from flask import redirect  # 初始化 Flask 应用  
app = Flask(__name__)  # 设置路由到根路径 '/'  
@app.route('/')  
def index():  return 'Hello World!'  # 返回欢迎信息  # 设置路由到 '/a'  
@app.route('/a')  
def add():  return '1+1=2'  # 返回加法运算结果  # 设置路由到 '/user/<username>',其中 <username> 是一个动态部分  
@app.route('/user/<username>')  
def user_index(username):  # 在视图函数中通过参数获取路由中的动态部分 username  return 'Hello {} '.format(username)  # 返回包含用户名的欢迎信息  # 设置路由到 '/post/<int:post_id>',其中 <int:post_id> 是一个整数类型的动态部分  
@app.route('/post/<int:post_id>')  
def show_post(post_id):  return 'Post {} '.format(post_id)  # 返回包含帖子ID的字符串  # 设置路由到 '/test'  
@app.route('/test')  
def test():  # 使用 url_for 函数生成路由的 URL,并打印出来  print(url_for('index'))  # 打印根路径的 URL  print(url_for('user_index', username='scj'))  # 打印用户路径的 URL,传入用户名 'scj'  print(url_for('show_post', post_id=1))  # 打印帖子路径的 URL,传入帖子ID 1  return 'test'  # 返回测试字符串  # 设置路由到 '/<username>',其中 <username> 是一个动态部分  
@app.route('/<username>')  
def hello(username):  if username == 'handsomescj':  return 'Hello {}' .format(username)  # 如果用户名是 'handsomescj',则返回欢迎信息  else:  return redirect(url_for('index'))  # 否则重定向到根路径  # 主程序入口  
if __name__ == '__main__':  app.run(debug=True)  # 运行 Flask 应用,并开启调试模式
​
请注意,代码中有个小的错误,app =Flask(__name__) 这一行应该去掉变量名 app 前的空格,修改为 app = Flask(__name__)。
​
在 Flask 应用中,注释是一个很好的习惯,它们可以帮助你和其他开发者理解代码的功能和逻辑。在编写代码时,记得添加足够的注释,尤其是在复杂的逻辑部分。

7模板渲染

python
#!/usr/bin/env python3  # 导入 Flask 框架  
from flask import Flask  
from flask import url_for  
from flask import redirect  
from flask import render_template  # 初始化 Flask 应用  
app = Flask(__name__)  # 设置路由到根路径 '/'  
@app.route('/')  
def index():  return 'Hello World!'  # 返回欢迎信息  # 设置路由到 '/a'  
@app.route('/a')  
def add():  return '1+1=2'  # 返回加法运算结果  # 设置路由到 '/user/<username>',其中 <username> 是一个动态部分  
@app.route('/user/<username>')  
def user_index(username):  # 使用 render_template 函数渲染 'user_index.html' 模板,并传入变量 username  return render_template('user_index.html', username=username)  # 返回渲染后的页面  # 设置路由到 '/post/<int:post_id>',其中 <int:post_id> 是一个整数类型的动态部分  
@app.route('/post/<int:post_id>')  
def show_post(post_id):  return 'Post {} '.format(post_id)  # 返回包含帖子ID的字符串  # 设置路由到 '/test'  
@app.route('/test')  
def test():  # 使用 url_for 函数生成路由的 URL,并打印出来  print(url_for('index'))  # 打印根路径的 URL  print(url_for('user_index', username='scj'))  # 打印用户路径的 URL,传入用户名 'scj'  print(url_for('show_post', post_id=1))  # 打印帖子路径的 URL,传入帖子ID 1  return 'test'  # 返回测试字符串  # 设置路由到 '/<username>',其中 <username> 是一个动态部分  
@app.route('/<username>')  
def hello(username):  if username == 'handsomescj':  return 'Hello {}' .format(username)  # 如果用户名是 'handsomescj',则返回欢迎信息  else:  return redirect(url_for('index'))  # 否则重定向到根路径  # 主程序入口  
if __name__ == '__main__':  app.run(debug=True)  # 运行 Flask 应用,并开启调试模式
​

新建templates 文件夹

以及在templates 文件中新建user_index.html

<h1>hello,{{ username }}!</h1>

8 get与post请求

get请求

#!/usr/bin/env python3
​
from flask import Flask
from flask import url_for
from flask import redirect
from flask import render_template
​
#初始化
app =Flask(__name__)
​
#设置多个路由
@app.route('/')
def index():return  'Hello World!'
​
@app.route('/a')
def add():return  '1+1=2'
​
@app.route('/user/<username>')
def user_index(username):#在函数中指明变量名称username,就能获取到通过路由传入的变量usernamereturn render_template('user_index.html',username=username)
​
@app.route(' /user/<password>' )
def user_password(password) :print( 'User-Agent :' , request.headers.get ( 'User-Agent ' ))print( 'time: ' , request.args. get( 'time'))print( 'q: ' , request.args. get( 'q'))print ( 'issinge : ' , request.args.get( ' issinge ' ))return ' password is{} '.format(password)
​
@app.route('/post/<int:post_id>')
def show_post(post_id):return 'Post {} '.format(post_id)
​
@app.route('/test')
def test():print(url_for('index'))print(url_for('user_index',username='scj'))print(url_for('show_post',post_id=1))return 'test'
​
@app.route('/<username>')
def hello(username):if username =='handsomescj':return 'Hello {}' .format(username)else:return redirect(url_for('index'))
​
if __name__ == '__main__':app.run(debug=True)
​

post请求

#!/usr/bin/env python3  from flask import Flask, request, render_template, redirect, url_for  # 初始化  
app = Flask(__name__)  # 设置多个路由  
@app.route('/')  
def index():  return 'Hello World!'  @app.route('/a')  
def add():  return '1+1=2'  @app.route('/user/<username>')  
def user_index(username):  # 在函数中指明变量名称username,就能获取到通过路由传入的变量username  return render_template('user_index.html', username=username)  @app.route('/user/<password>')  
def user_password(password):  print('User-Agent:', request.headers.get('User-Agent'))  print('time:', request.args.get('time'))  print('q:', request.args.get('q'))  print('issinge:', request.args.get('issinge'))  return 'password is {}'.format(password)  @app.route('/post/<int:post_id>')  
def show_post(post_id):  return 'Post {}'.format(post_id)  @app.route('/test')  
def test():  print(url_for('index'))  print(url_for('user_index', username='scj'))  print(url_for('show_post', post_id=1))  return 'test'  @app.route('/<username>')  
def hello(username):  if username == 'handsomescj':  return 'Hello {}'.format(username)  else:  return redirect(url_for('index'))  @app.route('/register', methods=['GET', 'POST'])  
def register():  print('method:', request.method)  print('name:', request.form['name'])  print('password:', request.form.get('password'))  print('hobbies:', request.form.getlist('hobbies'))  print('age:', request.form.get('age', default=18))  return 'register success!'  if __name__ == '__main__':  app.run(debug=True)
​

新建client.py

#!/usr/bin/env python3  import requests  # 设置需要发送的数据  
user_info = {  'name': 'scj',  # 去掉键和值之间的空格  'password': '123456',  # 去掉键和值之间的空格  'hobbies': ['code', 'run']  # 列表中的字符串去掉空格  
}  # 向url发送post请求  
r = requests.post("http://127.0.0.1:5000/register", data=user_info)  print(r.status_code)  # 打印请求返回的状态码

9session与cookie

#!/usr/bin/env python3  from flask import Flask
from flask import url_for
from flask import redirect
from flask import render_template
from flask import request
from flask import session
from flask import make_response# 初始化  
app = Flask(__name__)  app.secret_key='kdjklfjkd87384hjdhjh'# 设置多个路由  
@app.route('/')  
def index():  return 'Hello World!'  @app.route('/a')  
def add():  return '1+1=2'  #@app.route('/user/<username>')  
#def user_index(username):  # 在函数中指明变量名称username,就能获取到通过路由传入的变量username  #return render_template('user_index.html', username=username)  @app.route('/user/<password>')  
def user_password(password):  print('User-Agent:', request.headers.get('User-Agent'))  print('time:', request.args.get('time'))  print('q:', request.args.get('q'))  print('issinge:', request.args.get('issinge'))  return 'password is {}'.format(password)  @app.route('/post/<int:post_id>')  
def show_post(post_id):  return 'Post {}'.format(post_id)  @app.route('/test')  
def test():  print(url_for('index'))  print(url_for('user_index', username='scj'))  print(url_for('show_post', post_id=1))  return 'test'  @app.route('/<username>')  
def hello(username):  if username == 'handsomescj':  return 'Hello {}'.format(username)  else:  return redirect(url_for('index'))  @app.route('/register', methods=['GET', 'POST'])  
def register():  print('method:', request.method)  print('name:', request.form['name'])  print('password:', request.form.get('password'))  print('hobbies:', request.form.getlist('hobbies'))  print('age:', request.form.get('age', default=18))  return 'register success!'  @app.route('/set_session')  
def set_session():  # 设置session的持久化  session.permanent = True  session['username'] = 'scj' return '成功设置session'  @app.route('/get_session')  
def get_session():  value = session.get('username')    return '成功获取session值为:{}'.format(value)@app.route('/set_cookie/<username>')  
def set_cookie(username):  resp = make_response(render_template('user_index.html', username=username))  resp.set_cookie('user', username)  # 使用'user'作为cookie的名字  return resp  @app.route('/get_cookie')  
def get_cookie():  username = request.cookies.get('username')  # 使用'user'来检索cookie的值  return 'Hello {}'.format(username)  # 修正格式化字符串的语法  if __name__ == '__main__':  app.run(debug=True)

10 errot404

#!/usr/bin/env python3  from flask import Flask
from flask import url_for
from flask import redirect
from flask import render_template
from flask import request
from flask import session
from flask import make_response# 初始化  
app = Flask(__name__)  app.secret_key='kdjklfjkd87384hjdhjh'# 设置多个路由  
@app.route('/')  
def index():  return 'Hello World!'  @app.route('/a')  
def add():  return '1+1=2'  @app.route('/user/<username>')  
def user_index(username):  if username == 'invalid'abort(404)return render_template('user_index.html',username=username)@app.route('/user/<password>')  
def user_password(password):  print('User-Agent:', request.headers.get('User-Agent'))  print('time:', request.args.get('time'))  print('q:', request.args.get('q'))  print('issinge:', request.args.get('issinge'))  return 'password is {}'.format(password)  @app.route('/post/<int:post_id>')  
def show_post(post_id):  return 'Post {}'.format(post_id)  @app.route('/test')  
def test():  print(url_for('index'))  print(url_for('user_index', username='scj'))  print(url_for('show_post', post_id=1))  return 'test'  #@app.route('/<username>')  
#def hello(username):  
#    if username == 'handsomescj':  
#        return 'Hello {}'.format(username)  #   else:  
#        return redirect(url_for('index'))  @app.route('/register', methods=['GET', 'POST'])  
def register():  print('method:', request.method)  print('name:', request.form['name'])  print('password:', request.form.get('password'))  print('hobbies:', request.form.getlist('hobbies'))  print('age:', request.form.get('age', default=18))  return 'register success!'  @app.route('/set_session')  
def set_session():  # 设置session的持久化  session.permanent = True  session['username'] = 'scj' return '成功设置session'  @app.route('/get_session')  
def get_session():  value = session.get('username')    return '成功获取session值为:{}'.format(value)@app.route('/set_cookie/<username>')  
def set_cookie(username):  resp = make_response(render_template('user_index.html', username=username))  resp.set_cookie('user', username)  # 使用'user'作为cookie的名字  return resp  @app.route('/get_cookie')  
def get_cookie():  username = request.cookies.get('username')  # 使用'user'来检索cookie的值  return 'Hello {}'.format(username)  # 修正格式化字符串的语法  @app.route(404)
def not_found(error):return render_template('404.html'),404if __name__ == '__main__':  app.run(debug=True)

404.html

错了,sb

相关文章:

python之flask安装以及使用

1 flask介绍 Flask是一个非常小的Python Web框架&#xff0c;被称为微型框架&#xff1b;只提供了一个稳健的核心&#xff0c;其他功能全部是通过扩展实现的&#xff1b;意思就是我们可以根据项目的需要量身定制&#xff0c;也意味着我们需要学习各种扩展库的使用。 2 python…...

汽车笔记-保险

保险 1.交强险 上路必须买的&#xff0c; 国家规定必须要买。交强险不管你是有责还是无责&#xff0c;它都是可以赔偿的。交强险还有一个18000的垫付功能&#xff0c;比如说我们出了交通事故后&#xff0c;对方住院治疗需要你垫付钱&#xff0c;那么这个时候就可以用到交强险…...

人工智能时代的图像识别:机遇与挑战并存

人工智能&#xff08;AI&#xff09;时代为图像识别领域带来了前所未有的机遇&#xff0c;同时也伴随着一系列挑战。这一领域的发展不仅深刻影响了科技、医疗、教育、娱乐等多个行业&#xff0c;还在一定程度上改变了人们的生活方式。 机遇&#xff1a; 技术突破与创新&#…...

工作 9 年后,回老家当计算机老师的真实感受

北京某程序员发帖&#xff0c;他说自己工作了整整 9 年后&#xff0c;今年六月就告别了北京这个大都市&#xff0c;安安心心地回老家当起了计算机老师。 工作日&#xff0c;每天早上 8 点就得按点上班儿&#xff0c;到了下午 4 点半&#xff0c;下班儿的铃声一响&#xff0c;就…...

二叉树的镜像【c++】

#include <iostream> #include <vector> using namespace std;//双链表节点结构 typedef struct treeNode {int value;struct treeNode* left;struct treeNode* right;treeNode(int x) : value(x), left(nullptr), right(nullptr) {} } TreeNode;void mirrorTree(T…...

记录Python的pandas库详解

如何生成一个pd import pandas as pd df pd.DataFrame([[1,2,3],[4,5,6]],index[A,B],columns[C1,C2,C3])df ---------------------------------------------------------------------------C1 C2 C3 A 1 2 3 B 4 5 6df.T -------------------------------------------------…...

阻碍团队使用工具的原因竟然是……

本文首发于个人网站「BY林子」&#xff0c;转载请参考版权声明。 工具化、自动化、数字化&#xff0c;这些都是逐步改善工作的质量和效率的方式&#xff0c;是时代不断进步的表现。然而&#xff0c;还是有很多软件开发团队的工作还处于手工阶段&#xff0c;这是为什么呢&#x…...

【并发】第九篇 Atomic原子操作类 - 字段更新器类详解

导航 简介AtomicIntegerFieldUpdater简介 Atomic的字段更新器类是Java中一种用于实现线程安全的字段更新操作的类。它提供了一组原子操作,可以对字段进行原子性的更新。在并发环境中,多个线程同时更新一个字段可能会出现竞态条件(Race Condition)导致数据不一致的问题。At…...

FFmpeg: 自实现ijkplayer播放器--03UI界面设计

文章目录 UI设计流程图UI设计界面点击播放功能实现 UI设计流程图 UI设计界面 主界面 控制条 播放列表 画面显示 标题栏 设置界面 提示框 点击播放功能实现 槽函数实现&#xff1a; connect(ui->ctrlBarWind, &CtrlBar::SigPlayOrPause, this, &Main…...

【安装部署】Apache SeaTunnel 和 Web快速安装详解

版本说明 由于作者目前接触当前最新版本为2.3.4 但是官方提供的web版本未1.0.0&#xff0c;不兼容2.3.4&#xff0c;因此这里仍然使用2.3.3版本。 可以自定义兼容处理&#xff0c;官方提供了文档&#xff1a;https://mp.weixin.qq.com/s/Al1VmBoOKu2P02sBOTB6DQ 因为大部分用…...

泰迪智能科技携手洛阳理工学院共建“泰迪·洛阳理工数据智能工作室”

为深化校企合作&#xff0c;实现应用型人才培养目标&#xff0c;4月11日&#xff0c;洛阳理工学院携手广东泰迪智能科技股份有限公司举行“泰迪洛阳理工数据智能工作室”揭牌仪式暨工作室成员动员会在洛阳理工学院举行。洛阳理工学院计算机与信息工程学院院长石念峰、副院长李明…...

jenkins构建微信小程序并展示二维码

测试小程序的过程中&#xff0c;很多都是在回头和前端开发说一句&#xff0c;兄弟帮我打一个测试版本的测试码&#xff0c;开发有时间的情况下还好&#xff0c;就直接协助了&#xff0c;但是很多时候他们只修复了其中几个bug&#xff0c;其他需要修复的bug代码正在编写&#xf…...

阿里云大学考试python中级题目及解析-python中级

阿里云大学考试python中级题目及解析 1.WEB开发中&#xff0c;下列选项中能够实现客户端重定向的设置是&#xff08;&#xff09; A.响应头设置Location状态码200 B.响应头设置Location状态码302 C.响应头设置Accept-Location状态码301 D.响应头设置Accept-Location状态码…...

攻防演练作为红方,怎么绕过Web应用防火墙

在攻防演练中&#xff0c;作为红方尝试绕过Web应用防火墙&#xff08;WAF&#xff09;是一项常见且具有挑战性的任务。这要求你对WAF的工作原理有深入的理解&#xff0c;并且能够创造性地应用各种技术来测试WAF的防御限制。以下是一些更专业且可操作的策略&#xff0c;用于尝试…...

AI音乐,8大变现方式——Suno:音乐版的ChatGPT - 第505篇

悟纤之歌 这是利用AI为自己制作的一首歌&#xff0c;如果你也感兴趣&#xff0c;可以花点时间阅读下本篇文章。 ​ 导读 随着新一代AI音乐创作工具Suno V3、Stable audio2.0、天工SkyMusic的发布&#xff0c;大家玩自创音乐歌曲&#xff0c;玩的不亦乐乎。而有创业头脑的朋友…...

【C++】模拟list

list的模拟真的很震撼&#xff0c;第一次学习时给我幼小的心灵留下了极大地冲击 接下来我们一起看看list模拟究竟是怎样一回事 目录 节点的封装&#xff1a;list类的实现&#xff1a;私有成员变量&#xff1a;构造函数&#xff1a;push_back && pop_back: 迭代器类的实…...

SAP项目任务一览表

根据SAP Activate项目管理方法论的主要精神&#xff0c;浓缩到一些主要的团队和任务。 主要的团队有&#xff1a; 项目管理(办公室)Project Management(office)&#xff1a;项目经理团队&#xff0c;包括项目办公室。负责项目整体运行和监控&#xff0c;项目办公室负责项目的…...

130个学术网站和26个科研工具

我们平时可以见到不少学术资源&#xff0c;但是很多信息里会有一些重叠网站、无效网站&#xff0c;导致我们虽然收藏了很多网址&#xff0c;但是却并不都能用&#xff0c;学妹特地整合了130个学术资源网站和26个科研工具&#xff0c;每一个都是亲自试过有效的&#xff0c;希望能…...

《一键搞定!揭秘微信公众号文章批量下载的终极神器》

大家好&#xff01;今天我要给大家介绍一个超级好用的小工具&#xff0c;能帮你轻松批量下载微信公众号的文章&#xff0c;还不需要安装任何证书哦&#xff01;无论你是学生还是普通爱好者&#xff0c;只要你想保存一些精彩的公众号内容&#xff0c;这个工具都能帮到你。 概览 …...

鸿蒙入门02-首次安装和配置

注&#xff1a;还没有安装编辑器&#xff08; deveco studio &#xff09;的小伙伴请看鸿蒙入门01-下载和安装-CSDN博客 首次安装配置 编辑器&#xff08; deveco studio &#xff09;安装完毕以后需要进入配置界面进行相关配置配置完毕以后才可以正常使用 环境配置&#xf…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...