<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liuqinhou的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/liuqinhou</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; liuqinhou]]></copyright><item><title><![CDATA[idea全局搜索失效，Ctrl+shift+F快捷键不起作用]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132629247</link><guid>https://blog.csdn.net/liuqinhou/article/details/132629247</guid><author>liuqinhou</author><pubDate>Fri, 01 Sep 2023 18:37:31 +0800</pubDate><description><![CDATA[方法2：终极办法，如果你一直找不到是哪个软件冲突了，那就直接修改IDEA的全局搜索快捷键吧，也就是你不能再使用Ctrl+Shift+F了，直接打开配置中的keymap，搜索“Ctrl+Shift+F”，然后替换编辑为一个新的即可。方法1：是否与搜狗等输入法软件存在快捷键冲突，当然也可能是你新下载的什么软件导致的快捷键冲突导致IDEA全局搜索失效。可以改掉输入法的快捷键或者直接关闭输入法的快捷键，这样idea的全局搜索功能就恢复了。]]></description><category></category></item><item><title><![CDATA[git 本地仓库关联到远程仓库]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132547926</link><guid>https://blog.csdn.net/liuqinhou/article/details/132547926</guid><author>liuqinhou</author><pubDate>Mon, 28 Aug 2023 20:43:22 +0800</pubDate><description><![CDATA[原文链接：https://blog.csdn.net/sinat_39049092/article/details/113417142。建一个文件夹，进入文件夹打开命令行工具；将项目文件复制到新建文件夹中。（推荐，感觉这种最简单）二：局部（单个项目）]]></description><category></category></item><item><title><![CDATA[Python学习篇——类学习]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132482125</link><guid>https://blog.csdn.net/liuqinhou/article/details/132482125</guid><author>liuqinhou</author><pubDate>Thu, 24 Aug 2023 21:13:35 +0800</pubDate><description><![CDATA[Python入门 类class 基础篇Python入门 类class提高篇 - 知乎Python入门 class类的继承 - 知乎]]></description><category></category></item><item><title><![CDATA[Pycharm查看函数源码时进入pyi文件]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132125425</link><guid>https://blog.csdn.net/liuqinhou/article/details/132125425</guid><author>liuqinhou</author><pubDate>Sat, 05 Aug 2023 22:26:03 +0800</pubDate><description><![CDATA[本教程主要是为了解决一个在使用 Pycharm时常见的一个问题，这个问题虽然不会对写代码造成很大的影响，但是对于我个人而言是一件比较厌烦的事情。]]></description><category></category></item><item><title><![CDATA[Flask项目配置（Configuration）]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132123063</link><guid>https://blog.csdn.net/liuqinhou/article/details/132123063</guid><author>liuqinhou</author><pubDate>Sat, 05 Aug 2023 18:15:25 +0800</pubDate><description><![CDATA[程序逐渐变大时，配置也逐渐增多，写在主脚本里太占地方，不够优雅（这时你应该已经把表单，路由，数据库模型等等分成独立的文件了。Flask的配置对象（config）是一个字典的子类（subclass），所以你可以把配置用键值对的方式存储进去。这是一个通用的处理接口，Flask内置的配置，扩展提供的配置，你自己的配置，都集中在一处。大型项目需要多个配置组合，比如开发时的配置，测试的配置，部署的配置……这样我们需要在配置文件里创建不同的配置类，然后在创建程序实例时引入相应的配置类。你有两种方式来设置配置：。]]></description><category></category></item><item><title><![CDATA[＜Flask＞-sqlalchemy操作数据库]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132117571</link><guid>https://blog.csdn.net/liuqinhou/article/details/132117571</guid><author>liuqinhou</author><pubDate>Sat, 05 Aug 2023 11:40:35 +0800</pubDate><description><![CDATA[为了方便数据库的关联查询#不会在数据库中产生实体字段#如果知道了角色的情况下，能否快速查询出那些用户扮演该角色#原始查询方法：#快速查询方式：#关系属性，在一方添加关系属性：#“一方属性名” = db.relationship("多方模型类")#获取一个用户，快速查询这个用户的角色#原始查询方法#快速查询：#backref 添加反向属性，可以快速查询users = db.relationship("多方模型类", backref='role')users.role。]]></description><category></category></item><item><title><![CDATA[自定义flask命令]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132116411</link><guid>https://blog.csdn.net/liuqinhou/article/details/132116411</guid><author>liuqinhou</author><pubDate>Sat, 05 Aug 2023 10:13:17 +0800</pubDate><description><![CDATA[1、创建自定义命令")函数名称即为自定义命令名称, 此例为: hello2、也可以在@app.cli.command()中传入参数来设置命令名称, 例如: @app.cli.command(‘say-hello’)")3、click.echo() 用来打印命令界面显示的字符4、 执行 flask --help显示命令的帮助文档, 自定义的命令也在其中。]]></description><category></category></item><item><title><![CDATA[click option/argument参数详解（click.option()和click.argument()）]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132116019</link><guid>https://blog.csdn.net/liuqinhou/article/details/132116019</guid><author>liuqinhou</author><pubDate>Sat, 05 Aug 2023 09:42:11 +0800</pubDate><description><![CDATA[首先定义了一个add()函数，通过click.command()将add()函数装饰成一个命令接口，这样可以直接在命令行上通过“python 文件名.py ”的形式直接调用add()函数，再通过click.option()为add()函数添加选项“--name”，此选项即可通过命令行输入的形式传给add()函数。当然也可以直接在命令行中输入。callback=print_version，表示当命令行中出现--version时，不在执行click既定的命令流程，转而执行print_version()函数。]]></description><category></category></item><item><title><![CDATA[新版本的Flask中如何启动开发服务器和开启调试模式]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132112800</link><guid>https://blog.csdn.net/liuqinhou/article/details/132112800</guid><author>liuqinhou</author><pubDate>Fri, 04 Aug 2023 21:40:43 +0800</pubDate><description><![CDATA[在生产环境下，应该使用性能更好，更加完善的开发服务器，比如Gunicorn、uWSGI等。提示 Flask的FLASK_APP还接受其他形式的输入值，你可以参考文末给出的文档相关部分链接了解完整内容。类似的，虽然内置的命令行支持已经非常完善，但还有很多人在使用Flask-Script。如果你的工厂函数接受的参数不是默认参数，或者你想详细定义调用工厂函数的方式，那么也可以通过。是Flask特别支持的文件，这个文件则用来存储和Flask相关的环境变量，比如。，未来的变化还不好说。而且，在大型项目中，使用。]]></description><category></category></item><item><title><![CDATA[再探python装饰器]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132072667</link><guid>https://blog.csdn.net/liuqinhou/article/details/132072667</guid><author>liuqinhou</author><pubDate>Wed, 02 Aug 2023 22:49:50 +0800</pubDate><description><![CDATA[装饰器]]></description><category></category></item><item><title><![CDATA[authorization的请求头的值怎么设置]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132012274</link><guid>https://blog.csdn.net/liuqinhou/article/details/132012274</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 21:56:55 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[浅析网络应用中cookie，session，token三者的作用以及区别]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132010303</link><guid>https://blog.csdn.net/liuqinhou/article/details/132010303</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 20:39:45 +0800</pubDate><description><![CDATA[Cookie，Session，Token三者是网络应用发展过程中不同阶段所产生的产物，三者都有各自的优缺点，并没有明显的对立关系，反而是常常会结伴而存在，这也是经常混淆的原因。Cookie，Session，Token三者是网络应用发展过程中不同阶段所产生的产物，三者都有各自的优缺点，并没有明显的对立关系，反而是常常会结伴而存在，这也是经常混淆的原因。不过这种情况有很多解决方法，特别对于银行这类金融性质的站点，用户的任何敏感操作都需要确认，并且敏感信息的 Cookie 只能拥有较短的生命周期。]]></description><category></category></item><item><title><![CDATA[普通令牌token和jwt令牌token区别以及使用场景]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132010153</link><guid>https://blog.csdn.net/liuqinhou/article/details/132010153</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 19:08:44 +0800</pubDate><description><![CDATA[流行的jwt有一个设计上的缺陷，他通过密文传输用户信息，那么服务器在这种基础结构下是无法做到关闭用户登陆授权的操作，如果用户的jwt密文被偷窃，那么黑客就能以用户身份登陆，并且即使知道密文丢失，也无法关闭被偷窃的jwt密文。jwt令牌的方式就无需数据库的介入，jwt令牌中就包含着用户的信息，SpringSecurityOauth在发布令牌时，会将用户信息放入JWT令牌中，用户拿着JWT令牌时，SpringSecurityOauth从中获取到用户信息，实现用户权限的控制。基于数据库存储（以Redis为例）]]></description><category></category></item><item><title><![CDATA[谈谈 cookie & session & jwt]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132009487</link><guid>https://blog.csdn.net/liuqinhou/article/details/132009487</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 18:59:18 +0800</pubDate><description><![CDATA[session作为前端开发，在很长一段时间都不理解什么是session，直到慢慢学习后台开发后才彻底弄懂了什么是session。从前面一节的内容可以知道，cookie是保存在浏览器中的，即客户端，那session保存在哪呢？答案是服务端。当浏览器发送cookie到服务端之后，服务端怎么知道是哪个用户呢？也就是服务端是如何用cookie做登录验证的？客户端发送登录请求，服务端验证密码和用户名，如果都正确，服务端在响应头中会设置set-cookiekey-value为path=/；httpOnly;]]></description><category></category></item><item><title><![CDATA[JWT无状态理解]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132009347</link><guid>https://blog.csdn.net/liuqinhou/article/details/132009347</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 17:37:03 +0800</pubDate><description><![CDATA[使用数字签名算法（例如RSA）不能被伪造。因此，任何信任签名者证书的人都可以放心地相信 JWT 是真实的。服务器无需咨询令牌颁发服务器以确认其真实性。因为授权服务器不需要维护任何状态；令牌本身就是验证令牌持有者授权所需的全部内容。]]></description><category></category></item><item><title><![CDATA[前端请求传输token到后端的两种方式]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132009088</link><guid>https://blog.csdn.net/liuqinhou/article/details/132009088</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 17:16:23 +0800</pubDate><description><![CDATA[中，每次浏览器会自动帮我们带过去，不需要我们自己设置。，需要我们自己手动设置请求头。中，这样当页面刷新之后保证。]]></description><category></category></item><item><title><![CDATA[JWT | 一分钟掌握JWT | 概念及实例]]></title><link>https://blog.csdn.net/liuqinhou/article/details/132008833</link><guid>https://blog.csdn.net/liuqinhou/article/details/132008833</guid><author>liuqinhou</author><pubDate>Sun, 30 Jul 2023 17:06:39 +0800</pubDate><description><![CDATA[JWT的全称是Json Web Token。是基于RFC 7519开放标准的，它定义了一种紧凑且独立的方式，用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以用作验证和相互信任，因为它是经过数字签名的。JWT 可以使用密钥（使用HMAC算法）或使用RSA或ECDSA的公钥/私钥对进行签名。]]></description><category></category></item><item><title><![CDATA[网关与路由器的区别]]></title><link>https://blog.csdn.net/liuqinhou/article/details/131880704</link><guid>https://blog.csdn.net/liuqinhou/article/details/131880704</guid><author>liuqinhou</author><pubDate>Sun, 23 Jul 2023 16:51:51 +0800</pubDate><description><![CDATA[比如说路由器的IP是192.168.0.1（这个就是网关）也是进路由器必须的地址，其他的主机也必须是192.168.0.X（2—254之间任意一个数字）这样才能访问路由器也就是说这样才能上网，电脑上的网关地址就要填写192.168.0.1。另外一方面应用场景的区别，工业现场往往存在不同的网络环境，不同软件、不同系统、不同工厂之间的网络通信语言也都不尽相同，路由器可以做网关，防火墙可以做网关，三层交换机可以做网关，一台普通pc可以做网关，甚至一个智能手机也可以做网关。完全不同的两种系统之间，网关是一个。]]></description><category></category></item><item><title><![CDATA[客户端代码覆盖率部署:‘sourceDirectories‘属性无法修改解决方案]]></title><link>https://blog.csdn.net/liuqinhou/article/details/131865476</link><guid>https://blog.csdn.net/liuqinhou/article/details/131865476</guid><author>liuqinhou</author><pubDate>Sat, 22 Jul 2023 11:25:11 +0800</pubDate><description><![CDATA[配置android客户端代码覆盖率配置时，在第三步引入。修改后，工程同步不报错了。]]></description><category></category></item><item><title><![CDATA[javac 命令 javac 命令大全详解---推荐看]]></title><link>https://blog.csdn.net/liuqinhou/article/details/131861477</link><guid>https://blog.csdn.net/liuqinhou/article/details/131861477</guid><author>liuqinhou</author><pubDate>Fri, 21 Jul 2023 22:45:21 +0800</pubDate><description><![CDATA[注：当要编译的.java文件较少，直接在javac命令后接上源文件列表即可，例如：javac SourceFile1.java SourceFile2.java 当要编译的Java文件较多时可以使用*.java通配，也可以将源文件名列在一个文件中(任意后缀均可，例如：sourcefiles.anything)，然后在 javac 命令行中使用该列表文件名，文件名前冠以 @ 字符，即：javac @sourcefiles.anything。通过类路径查找的类，如果找到了其源文件，则可能会自动被重新编译。]]></description><category></category></item></channel></rss>