Stable Diffusion 安装教程(详细)_stable diffusion安装

引言 如果你只想简单尝试一下,仅仅图一乐,可以通过网页在线体验Stable Diffusion,可以今日免费的网站进行使用(https://stablediffusionweb.com/),只是功能不如本地的多。 本地部署安装Stable Diffusion有很多种方式,例如安装启动器,安装传统的Web Ui界面等等,它们的步骤看似繁琐复杂,其实大佬们已经帮我们整合了资源,我们只需要找到正确的下载地址就可以,剩下工作都交给了脚本,大胆往前走! 鉴于国内很多大佬已经制作了如何安装启动器来本地部署Stable Diffusion,本次主要介绍传统的Web Ui界面部署。 准备内容 (一)硬件查看 首先确保我们有独立的GPU,按住ctrl+Shift+Esc,选择性能,然后拉到最底下,如果能看到显卡型号的这一栏,就OK。 然后确保至少有4GB的GPU专用显存,硬盘空间至少留出10GB。如果上述硬件环境没问题,我们就要准备软件环境了。 要想成功在本地安装StableDiffusion,我们需要下载并安装两个软件Python 和 Git。 (二)Python 3.10.6下载 新版本的Python目前不支持一些功能,所以我们一定要选择特定的版本,下载地址:Python Release Python 3.10.6 | Python.org,进入网站后,我们拉到网页最下方,选择64位下载。 (三)Python 3.10.6安装 注意,这一步一定要勾选3.10 to PATH,然后Install Now。安装成功,点击右下角关闭即可。 (四)Git下载安装 这是为了下载StableDiffusion界面的相关内容,并方便以后获取更新内容。 下载地址:Git - Downloading Package点击下载安装。 (五)注册GitHub GitHub的注册页面:Sign in to GitHub · GitHub,输入国内的邮箱和密码,选择sign in注册就好。有时候GitHub网页登不上去很正常,可以多刷几次,或者挑一个网络通畅的时段进行注册登录。 正式安装 准备内容都安装好之后,我们可以开始正式安装StableDiffusion了。 (一)下载StableDiffusion Web Ui 存储库 快捷键win+R,输入cmd,打开命令提示行,它长这个样子 然后我们在你想安装的位置新建一个文件夹,记录好文件路径。 我们在命令行输入(d:) ,因为我的新建文件夹在D盘。可以看到,盘符由C:\Users\TXY>变成了D:>. 复制D盘下的新建文件路径,前面加上cd,,回车,可以看到我们通过命令行进入到了新建的文件夹。 (二)GitHub注册/登录 继续操作命令行,在刚刚的盘符下输入git clone GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI,它会弹出来一个GitHub的登录选项,如果之前在安装Github的步骤里注册过,就可以直接登录。如果没注册,我们选择通过浏览器注册(sign brower)。 输入邮箱和密码即可进行注册,国内的邮箱就可以。一路按绿色的选项就行。 注册完毕后,我们查看命令行,命令行目前正在从GitHub的网站下载内容到我们的新建文件夹里,出现done,代表下载完毕。 (三)安装StableDiffusion Web Ui

使用vue3结合requestAnimationFrame计算网页的帧数FPS

每跑完一次requestAnimationFrame,就说明跑完一帧了,所以我们只需要计算出:一秒内跑了多少次 requestAnimationFrame即可 import { Ref, ref } from 'vue'; export interface UseFpsOptions { every?: number; } export const useFps = (options?: UseFpsOptions): Ref<number> => { const fps = ref(0); const every = options?.every ?? 10; //记录起始时间 let last = performance.now(); let ticks = 0; const update = () => { ticks += 1; //间隔到了再重新计算 if (ticks >= every) { const now = performance.now(); //计算出这一帧用了多久 const diff = now - last; //用1000ms 去除以 一帧用的ms 可以得出帧数 fps.

华为OD机试真题2023 C & D卷(JAVA&JS)

华为机试真题已于11月8号由2023 B卷切换为2023 C&D卷 此专栏支持Java、JS,需要Python、C++ 的点 这里 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100分,第三道为中等或困难题,分值为200分。总分为400分,150分钟考试时间。之前通过为150分,现在好像分数提高了,大家不要太大意,一定要多刷题,争取拿高分,毕竟分数越高评级越高,工资也就越高。OD的工资待遇还是很可观的15K-30K*14-16,希望大家努力 ★★★很多题博主都发布了获得【满分】同学的算法,大家可以参考参考。有些题的满分题解可能无法通过自己的部分测试用例,不必纠结,以满分为主。 部分无法获取满分答案的题目,博主也会提供尽可能多的真实测试用例来给大家避坑,让大家尽可能的获取高分,为后面的薪资谈判提供筹码!!! 每道题我都有些自己的解题思路,帮助大家更好的理解题意和代码。 题目不断更新中。。。 基础题: 序号题目知识点分值1【满分】字符串变换最小字符串字符串、排序1002分配土地二维数组1003分披萨穷举1004小华最多能得到多少克黄金广度搜索1005英文输入法字符串1006来自异国的客人进制转换1007【满分】整数对最小和数组1008游戏分组多层循环1009精准核酸检测深度广度搜索10010最多购买宝石数目双指针10011万能字符单词拼写字符串10012内存冷热标记排序10013密码解密字符串、ASCII码10014求字符串中所有整数的最小和字符串10015密码输入检测字符串10016螺旋数字矩阵深度广度搜索10017求幸存数之和数组10018火星文计算栈10019CPU算力分配数组、排序10020小朋友来自多少小区map10021灰度图恢复矩阵、二维数组10022查找众数及中位数排序10023提取字符串中的最长数学表达式并计算字符串10024找朋友循环10025小明找位置排序10026最大坐标值循环10027执行任务赚积分排序10028虚拟游戏理财数组、计算10029寻找最富裕的小家庭map10030字符串序列判定遍历10031围棋的气数组10032多段线数据压缩二维数组10033用连续自然数之和来表达整数循环10034素数之积算术10035生成哈夫曼树二叉树10036机器人仓库搬砖二分法10037停车场车辆统计数组10038考勤信息字符串10039攀登者1数组10040数组去重和排序数组、排序10041找座位数组10042查找接口成功率最优时间段数组10043开源项目热榜计算10044计算三叉搜索树的高度树10045转盘寿司数组10046最长子字符串的长度(一)字符串10047测试用例执行计划map10048求最多可以派出多少支团队双指针10049机场航班调度程序字符串10050传递悄悄话二叉树10051阿里巴巴找黄金宝箱(II)map10052按身高和体重排队集合、排序10053执行时长数组10054【满分】API集群负载统计map10055【满分】智能成绩表map10056【满分】分割均衡字符串字符串10057乘坐保密电梯贪心10058寻找身高相近的小朋友数组10059堆内存申请数组10060计算面积数组10061手机App防沉迷系统数组10062数的分解循环100 进阶题: 序号题目知识点分值1符号运算栈2002孙悟空吃蟠桃二分法2003最长子字符串的长度(二)2004【满分】求满足条件的最长子串的长度map2005最长的指定瑕疵度的元音子串字符串2006两个字符串间的最短路径问题深度搜索2007分月饼递归2008任务处理排序2009抢7游戏递归20010贪心歌手贪心20011Wonderland动态规划20012数组排列求和20013考古学家全排列20014学生重新排队20015解密犯罪时间数组20016路口最短时间问题递归20017加密算法深度搜索20018会议室占用时间数组20019信道分配深度搜索20020员工派遣数组20021字符串拼接递归200225G网络建设最小生成树20023可以组成网络的服务器深度搜索、广度搜索20024伐木工动态规划20025【满分】攀登者2数组20026查找一个有向网络的头节点和尾节点map、图、DFS20027【满分】文件缓存系统map、排序20028项目排期DFS、回溯20029【满分】园区参观路径数组20030【满分】快递员的烦恼循环20031文本统计分析字符串20032矩阵匹配递归20033图像物体的边界深度、广度搜索20034石头剪刀布游戏字符串20035部门人力分配​​​​​​​二分法20036模拟目录管理​​​​​​​集合20037电脑病毒感染最短路径20038智能驾驶递归20039跳格子动态规划20040欢乐的周末广度搜索20041音乐小说内容重复识别42启动多任务排序map20043二叉树计算树20044根据IP查找城市map20045贪吃的猴子递归20046跳马深度、广度搜索20047跳格子三动态规划20048数据单元的变量替换字符串、map20049高效货运算术20050篮球游戏栈20051中文分词模拟器字符串20052最小矩阵宽度双指针20053【满分】反射计数二维数组20054结队编程数组、循环20055推荐多样性​​​​​​​数组、循环200

PostgreSQL数据库全局备份及免输密码

1、备份脚本 #!/bin/bash # 设置本地备份目录 LOCAL_BACKUP_DIR="/pg_backup" TIMESTAMP=$(date +"%Y%m%d_%H%M%S") # 设置远程服务器信息 REMOTE_SERVER="192.168.1.1" REMOTE_USER="root" REMOTE_BACKUP_DIR="/pg_backup" # 创建本地备份目录 mkdir -p $LOCAL_BACKUP_DIR # 使用pg_dumpall进行全局备份 /app/postgresql/bin/pg_dumpall --host=192.168.1.2 --port=18053 --username=yw --file=$LOCAL_BACKUP_DIR/pg_dumpall_$TIMESTAMP.sql # 传输备份文件到远程服务器 scp -P 10022 $LOCAL_BACKUP_DIR/pg_dumpall_$TIMESTAMP.sql $REMOTE_USER@$REMOTE_SERVER:$REMOTE_BACKUP_DIR # 清理本地15天以上的备份文件 #rm -rf $LOCAL_BACKUP_DIR find $LOCAL_BACKUP_DIR -type f -name "*.sql" -mtime +15 -exec rm {} \; 2、免密配置文件 要使用 .pgpass 文件进行 pg_dumpall 的全局备份,你需要按照以下步骤进行操作: 打开文本编辑器,创建一个新的纯文本文件。 将以下内容复制并粘贴到文件中: localhost:5432:*:your_username:your_password 请确保将 your_username 替换为你的 PostgreSQL 用户名,将 your_password 替换为你的密码。如果你使用的是主机名而不是本地主机,请将 localhost 替换为你的 PostgreSQL 服务器的主机名或 IP 地址。中间的*号表示PG库里面的所有的数据库。

在Windows上搭建OpenVINO™ Java开发环境

作者:英特尔边缘计算创新大使 黄明明 简介 《OpenVINO™ Java API 详解与演示》发布后,很多读者询问如何从零开始搭建在Windows平台上搭建OpenVINO™ Java开发环境?本文将从零开始详细介绍环境搭建的完整步骤,环境搭建完毕后,再使用Java语言来对OpenVINO™ Java API 环境进行简单测试,并验证其可行性。 安装Java运行环境 Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。我们可以在Oracle 的Java SE页面进行下载,建议从Java 11开始 JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK. 安装Java运行环境的基本步骤如下: 下载Java11 Windows版本的压缩包(也可以在IDEA中下载)解压到一个正确的目录,最好是英文目录配置环境变量 具体可以搜索网上安装Java JDK的教程 配置Java开发环境 对于Java开发而言,开发工具相对而言比较多,如Eclipse、VS Code、IntelliJ IDEA,而相对体验而言,本篇文章将使用IntelliJ IDEA - 社区版本作为主要开发工具,当然大家可以使用自己喜欢的IDE进行开发,同时由于IntelliJ IDEA 具备Maven的功能,所以我们可以直接进行测试。而本篇文章将采用一下组合进行开发: JDK: Oracle Java11MavenIDE: IntelliJ IDEA 社区版 编译OpenVINO™ Java API到本地 由于OpenVINO™ Java API目前没有上传到Maven中央仓库,所以需要手动编译和安装到本地的maven环境中。 下载OpenVINO™ Java API 源代码到本地通过IDEA 打开项目通过Maven 工具install到本地 日志将输出: [INFO] Installing F:\OpenVINO-Java-API-main\pom.xml to C:\Users\xxxx\.m2\repository\org\openvino\java-api\1.0-SNAPSHOT\java-api-1.0-SNAPSHOT.pom [INFO] Installing F:\OpenVINO-Java-API-main\target\java-api-1.0-SNAPSHOT.jar to C:\Users\ming\.m2\repository\org\openvino\java-api\1.0-SNAPSHOT\java-api-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.

uniapp 微信小程序,实现扫码链接打开小程序

1、onLoad()方法获取路由中的参数 onLoad((options) => { let urlStr = decodeURIComponent(options.q) // 获取到二维码原始链接内容 let url = '' if (typeof urlStr == "undefined") { url = decodeURI(location.search); //获取url中"?"符后的字符串 } else { url = "?" + urlStr.split("?")[1]; } let params = {}; if (url.indexOf("?") != -1) { let str = url.substr(1); let strs = str.split("&"); for (let i = 0; i < strs.length; i++) { params[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]); } } console.log("params = ", params) if (params.

简单的拖拽实现代码html+js

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>简单的拖拽实现代码html+js</title> <style> #dragDom { position: absolute; top: 0; left: 0; height: 88px; width: 88px; user-select: none; cursor: pointer; background-color: aquamarine; } </style> </head> <body> <div style=" position: relative; background-color: antiquewhite; width: 600px; height: 280px; overflow: auto; margin: 10px; " > <div id="dragDom">拖动</div> <script> var str = ""; for (var i = 0; i < 1000; i++) { str += "

快速入门c++

基础篇 一、类(class) 1.概念 在 C++ 中,类(class)是一种用于创建对象的蓝图或模板。类定义了对象的属性(成员变量)和行为(成员函数),并提供了一种封装数据和功能的机制。 2.案例 (1).构造函数 构造函数是一种特殊的成员函数,用于初始化类的对象。构造函数的名称与类名相同,并且没有返回类型(包括 void)。构造函数在创建对象时自动调用,用于设置对象的初始状态。 (2).成员访问修饰符 类的成员可以使用访问修饰符(public、private、protected)来指定其访问权限。public修饰的公有成员可以在类的外部访问,private修饰的私有成员只能在类的内部访问,protected修饰的受保护成员可以在类的内部和派生类中访问。 #include <iostream> #include <string> class Person { // 私有变量 private: std::string name; int age; // 公有变量 public: // 构造函数 Person(const std::string& n, int a) : name(n), age(a) {} // 成员函数 void display() { std::cout << "Name: " << name << ", Age: " << age << std::endl; } }; int main() { // 创建类对象 Person person("John", 25); // 调用成员函数 person.

vscode添加/** */注释快捷键

​ /** */是什么 /**......*/注释若干行,并写入javadoc文档。每个文档注释都会被置于注释定界符 注释文档将用来生成HTML格式的代码报告,所以注释文 档必须书写在类、域、构造函数、方法,以及字段(field)定义之前。注释文档由两部分组成——描述、块标记。 你再调用类和方法的时候会出现提示,内容就是你写的注释。就好像文档帮助一样。类似"字符串".toString(),鼠标放在toString()上时出现的api说明。 /*......*/注释若干行,通常用于提供文件、方法、数据结构等的意义与用途的说明,或者算法的描述。一般位于一个文件或者一个方法的前面,起到引导的作用,也可以根据需要放在合适的位置。 和/* */相比,/* */就是//的多行版 举例: 2.在vscode中添加快捷键 打开VSCode,点击左下角的设置按钮(齿轮图标) 在下拉菜单中选择“用户代码片段”。 在弹出的菜单中选择“新建全局代码片段”。 在弹出的输入框中输入文件名,例如javascript.json。 在弹出的编辑器中输入以下代码: { "Print to console": { "prefix": "comment", "body": [ "/**", " * $1", " */" ], "description": "Generate /** */ comment block" } } ​保存文件。 现在,当你在一个JavaScript文件中输入comment并按下回车键,就会生成/** */注释块,并且光标会定位在注释块中的第一行,你可以在其中输入注释内容。

瀑布流布局 (初版)

瀑布流布局 文章目录 瀑布流布局前言1. 背景2. 点⬇️🔗去体验效果如下图所示: 一、初版waterfall布局和问题暴露?1.效果图如下:2.暴露问题如下图所示:第一张问题图:第二张问题图: 3.HTML代码如下:4.JS代码如下: 二、初版waterfall布局问题的排查和解决1.排查问题2.解决问题第一种解决方法:设置块级作用域(行不通)代码修改如下图所示:修改后如下图所示(依然有插入顺序问题): 第二种解决方法:改变每一列高度的获取方式(成功了)代码修改如下图所示:图1如下(waterfall布局正常渲染)图2如下(waterfall布局正常渲染) 3.完整代码 👇方🔗获取 总结(完整代码文件点击下方🔗,晚些更新进阶版) 前言 起初我看网上有很多处理waterfall的处理方案,但是我都没去仔细的去阅读📖(主要是我相信我自己也可以做出来,事实如此我做出来了)。 后面也可能会对当前的版本进行二次优化。学习一下别人的优秀想法💡。 ⚠️⚠️⚠️:提供这个容易理解的版本,后续会发布精简版本或者附加功能版本 (功能包括:图片懒加载、触底加载数据、展示的虚拟列表优化、响应式等功能。 1. 背景 为什么突然要去尝试写一个瀑布流布局? 首先,很早之前我就看到【小红书】主站就采用了这种 waterfall布局进行的展示。 其次,负责这块内容的同学是我前一个组的同事(哈哈哈哈哈😂)。 然后,我就大概去调试了一下【小红书】主站上的瀑布流,第一感觉:那是相当的丝滑,很牛逼,很高大上; 最后,waterfall布局也可以搭配很多其他的功能,例如:触底加载,图片懒加载,Dom结构懒加载等。 【小红书】主战的waterfall布局他使用的是 绝对定位 + Css的样式进行开发的。这种waterfall布局的优势:就是可以避免当前的网页一直被重绘。古德古德!!💪💪 2. 点⬇️🔗去体验 waterfall体验🤌 效果如下图所示: 一、初版waterfall布局和问题暴露? 1.效果图如下: 2.暴露问题如下图所示: 在首页中也可以看到错误的顺序。初版构思的waterfall布局,并没有按照最小的长度的盒子的顺序插入,而是一个比较乱的状态。 第一张问题图: 第二张问题图: 3.HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>waterFall</title> <style> #water-fall-main { display: flex; gap: 8px; position: relative; width: 100%; justify-content: space-around; } .water-fall-columns { width: 250px; /* border: 1px solid red; */ display: flex; flex-direction: column; align-items: center; gap: 8px; } .

为什么ChatGPT用Python实现?

可能你不知道, ChatGPT这个网站的后端居然是用Python实现的。 在一些人眼里,Python只能用来写写脚本、搞搞爬虫、做些小项目之类的,其实这是对Python的最大偏见。 因为Python早就被证明可以应用在大型项目中,特别是国外很多明星产品,比如 YouTube、Instagram、Quera、Dropbox。在国内,豆瓣、知乎、早期的字节跳动Python都是第一语言,当然还有很多大厂都有Python的应用场景,我们自己的项目「次幂数据」也是用的Python 为什么ChatGPT也用Python来提供他们的Web服务呢?先问问ChatGPT自己怎么回答的。 ChatGPT的业务模型非常简单,就是一个纯聊天服务,像国内各种gpt镜像网站,一个熟练的全栈工程师,一天就搞定了。 理论上来说,随便用哪种语言都能hold住,即便是PHP 也行。为什么非要选Python呢? 首先,GPT模型本身就是基于PyTorch和TensorFlow这两个AI框架实现的,而他们本身就是Python开发的(内核不是),Web后端这块用Python完全可以无缝对接,整个技术团队一种技术栈就搞定了,但凡是多引入一种技术就多些成本。 其次,Python真正的优势在于它易学易用、开发效率高,还记得Instgram十几个工程师搞定一个用户量上亿的产品么?现在ChatGPT的用户量也已经过亿了,Python就很适合小团队做大项目。 最后,因为这种产品真正的性能瓶颈还是在于网络、磁盘IO身上,可以靠硬件来解决,语言运行效率上的劣势可以忽略不计。 还有说Python是动态语言不适合重构的,那是因为没有真正用过Python,因为Python早就引入了静态类型支持,但凡是代码写规范了,无论是可读性还是可维护性静态语言相差无几了。 关于Python技术储备 学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助! 一、Python所有方向的学习路线 Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。 二、学习软件 工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。 三、入门学习视频 我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。 四、实战案例 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 五、面试资料 我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

大数据处理,Pandas与SQL高效读写大型数据集

大家好,使用Pandas和SQL高效地从数据库中读取、处理和写入大型数据集,以实现最佳性能和内存管理,这是十分重要的。 处理大型数据集往往是一项挑战,特别是在涉及到从数据库读取和写入数据时。将整个数据集加载到内存中的传统方法可能会导致系统崩溃和处理时间缓慢。 本文将探讨一种更好的解决方案:简化分块读写数据的过程。这种技术能够高效地处理大量数据,对于任何与数据库和数据帧一起工作的人来说都是一种宝贵的工具。我们将重点使用流行的数据分析库Pandas来演示如何从数据库表中读取大量数据,并将其分块写入Pandas数据帧,以及如何将大型数据从数据帧写回数据库。 一. 简化从数据库表中分块读取大型数据集的过程 在处理存储在数据库中的大量数据时,以高效和可管理的方式处理数据非常重要。Pandas中的pd.read_sql()函数提供了一种方便的解决方案,可以将数据从数据库表中读取到Pandas DataFrame中。通过添加chunksize参数,可以控制每次加载到内存中的行数,从而使我们能够以可管理的块处理数据,并根据需要对其进行操作。本文将重点介绍如何使用Pandas从Postgres数据库中读取大型数据集。 engine = create_engine( "postgresql+psycopg2://db_username:db_password@db_host:db_port/db_name") conn = engine.connect().execution_options(stream_results=True) for chunk_dataframe in pd.read_sql("SELECT * FROM schema.table_name", conn, chunksize=50000): print(f"Dataframe with {len(chunk_dataframe)} rows") # ...对数据帧做一些事情(计算/操作)... 在上面的代码中: 使用SQLAlchemy库中的create_engine()方法创建了一个SQLAlchemy引擎。 使用stream_results=True创建了一个到PostgreSQL数据库的连接。稍后详细介绍。 然后,将此连接与从表中选择所有行的SQL查询一起传递给pd.read_sql()函数。 还指定了chunksize为50000行,这意味着pd.read_sql()函数每次返回一个包含50000行的新DataFrame。 然后,可以使用for循环迭代pd.read_sql()函数返回的数据块。 在此示例中,只是打印每个数据块中的行数,但在真实场景中,可能会在处理下一个数据块之前对每个数据块进行一些额外的处理。 stream_results:在SQLAlchemy中,当执行查询时,通常会将结果一次性加载到内存中。当处理大型结果集时,这可能会导致效率低下,因为它需要大量的内存。当启用stream_results(设置为True)时,查询会返回一个游标,并在需要时获取结果集的每一行,从而减少内存使用量。这在处理大型结果集时特别有用,否则会占用大量内存。 二. 将大型数据集写入数据库表 在处理数据后,可能需要将其写回数据库表。虽然Pandas提供的to_sql()方法是一种方便的方法,但对于写入大量数据来说可能不是最高效的方法。我们将使用to_sql()的method参数。这时就要用到COPY方法。 COPY方法被广泛认为是将数据插入SQL数据库的最快方法之一。SQL中的COPY语句用于将大量数据快速加载到表中,或将数据从文件导出到表中。COPY语句的基本语法简单明了,可以轻松地将大量数据快速插入到数据库表中。 COPY [table_name] ([column1, column2, ...]) FROM [file_path] [WITH (options)] 本文将探讨COPY方法,以及它如何能够高效地将大量数据写入数据库表。无论处理的是少量数据还是大量数据,COPY方法都是一个可以快速、高效地将数据写入数据库的有用工具。 在Python中,一种方法是将数据帧存储在文件中,然后使用上述查询快速批量插入数据。但是大多数情况下并不希望创建文件,因此我们将使用缓冲对象。 注意:此方法仅适用于支持COPY FROM方法的数据库。 import csv from io import StringIO def copy_insert(table, conn, keys, data_iter): # 获取提供游标的DBAPI连接 dbapi_conn = conn.

GUN89局部变量定义必须放在前面?

谁能想到VS2010还用的GUN89. 局部变量放放在前面挺尴尬的。 不过, 1. 如果没有啥要求,加一个static,就不是局部变量了,可以临时应付一下~ 2. 甚至多个函数都有这个变量的话,可以在.c中直接加一个全局的static int XXX;一步到位! 3.if条件语句下也可以定义局部变量,但同样得放在最前面。

npm install出错的各种情况

1.npm不再支持签名证书,npm install 走的是http协议,需要通过数字证书保证 解决方法: 解决方法: 1、取消ssl验证: npm config set strict-ssl false 这个方法一般就可以解决了。 2、更换npm镜像源: npm config set registry http://registry.cnpmjs.org npm config set registry http://registry.npm.taobao.org 2.ERROR: npm v10.3.0 is known not to run on Node.js v14.18.0. This version of npm supports the following node versions: ^18.17.0 || >=20.5.0. You can find the latest version at https://nodejs.org/.-----》npm版本和node.js版本不一致,这种情况,可以更新node.js版本,根据网址去下载就可以 node.js的环境变量配置 1.系统变量path加上node.js的文件路径 2.系统变量增加NODE_PATH 内容是:node_modules的文件路径 3.系统变量中的path增加%NODE_PATH% 4.测试:cmd中输入node -v 就会显示版本 3.网络连接失败的情况 换一个源头,换成淘宝镜像

SHELL语言第一篇shell基础

shell基础 1 开发环境2. shell基础语法1.注释2.变量3.命名规范4.字符串5.数组6.运算符7.流程控制8.函数 详细语法链接 1 开发环境 1.安装文本编辑器(ubuntu) sudo apt install vim 创建sh文件 vim aaa.sh 2.指定脚本解释器 #!/bin/bash --- 指定脚本解释器 echo "hello world" 保存 wq查看 ls赋权限 chmod +x ./aaa.sh以上命令详细用法链接运行 ./aaa.sh 2. shell基础语法 1.注释 单行注释的格式 #多行注释的格式每一行加一个 #文档注释: 以:<<EOF 开始,以 EOF结束以:<<’ 开始,以 '结束以: '开始,以’结束 2.变量 1、定义变量: aaa_bbb="ccc" 2、使用变量 aaa_bbb="ccc" echo $aaa_bbb echo ${aaa_bbb} #花括号是帮助解释器识别变量的边界推荐写法 3、只读变量(常量) #!/bin/bash aaa_bbb="https://www.baidu.com" readonly aaa_bbb #只读变量 4、删除变量 unset aaa_bbb #不能删除只读变量 3.命名规范 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。 4.字符串 单引号 aaa='bbb' #单引号字符串中的变量是无效的 双引号 aaa='bbb' ccc="

nginx反向代理出现WebSocket connection failed 如何解决

WebSocket WebSocket 是一种用于在 Web 应用程序中进行实时双向通信的技术。WebSocket 协议允许客户端和服务器在一个 TCP 连接上进行交换数据。这使得在 Web 上实现实时通信变得更容易。 使用 WebSocket,客户端和服务器之间可以双向通信,因此服务器可以主动向客户端发送更新,而不需要等待客户端请求。这与传统的 HTTP 请求-响应模型非常不同,因为在 HTTP 中,客户端必须发送请求以获取更新。 WebSocket 是 HTML5 的一部分,并由 W3C 规范管理。现代 Web 浏览器通常支持 WebSocket 技术,包括 Chrome,Firefox,Safari 和 Edge。常见的使用 WebSocket 的应用程序包括聊天应用程序,实时协作工具以及在线游戏。 'WebSocket connection failed' 通常表示 Nginx 服务器的 WebSocket 配置有问题。 正确配置 Nginx 服务器以支持 WebSocket 可以解决此问题。 第一步:检查 Nginx 的版本是否支持 WebSocket。如果你的版本是 1.3 或更高版本,则支持 WebSocket。第二步:编辑你的Nginx配置文件。你应该在nginx.conf文件的server块中找到以下一行配置。 location / { # ... } 第三步:添加以下配置行以启用 WebSocket 支持: proxy_pass 向代理服务器发送 WebSocket 流量(upstream 为目标网址)proxy_http_version 将请求协议版本设置为1.1Upgrade 头的值设置为 $http_upgrade,该值为所有带有 'Upgrade' 标题的请求头Connection 头的值设置为 'upgrade',以指示连接已经成功升级 location / { proxy_pass http: //your_upstream; proxy_http_version 1.

Python学习从0到1 day8 Python循环语句

我相信有些友情不会被时间打败,但我也知道,我们没有办法像从前一样常常相聚,时常联系,所以我想让你知道,我希望你过的很好,像你的照片一样好,我希望你很顺利,像你曾经在我面前憧憬的那样,往前跑的时候,千万别回头,但如果你很需要有人陪你说话,别忘了我永远在这里,永远是你的兄弟 ——致我的朋友 24.1.24 一、while循环语句 1.while循环的语法格式: while 条件: 条件满足时,做的事情1 条件满足时,做的事情2 条件满足时,做的事情3 ……省略…… 2.引例 # 演示while循环的基础英语应用 i = 0 while i < 100: print("一切都会好的" ) i=i+1 3.while循环注意点 ①while的条件需要得到布尔类型,True表示继续循环,False表示结束循环 ②需要设置循环终止的条件,如i += 1配合i < 100,就能确保100次后停止,否则将无限循环 ③空格缩进和if判断一样,都需要设置,以确定层次之间的关系 4.练习案例:求1-100的和 通过while循环,计算1累加到100的和 sum = 0 i = 1 while(i<=100): sum =sum + i i=i+1 print(f'1-100累加的和为:{sum}') 5.猜数字案例 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数 无限次机会,直到猜中为止 每一次猜不中,会提示大了还是小了 猜完数字后,提示猜了几次 随机数可以使用: import random num = random.randint(1,100) # 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数 import random result = random.randint(1,100) i=1 while True: num = int(input(f'请您猜一个数字,这是第{i}次猜测\n')) i+=1 if result == num: print("

SqlAlchemy使用教程(六) -- ORM 表间关系的定义与CRUD操作

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用SqlAlchemy使用教程(五) ORM API 编程入门 本章内容,稍微有些复杂,建议腾出2小时空闲时间,冲杯咖啡或泡杯茶 😃 , 慢慢看,在电脑上跑下代码,可以加深理解. 六、表间关系的定义与CRUD操作 表间关系主要包括:一对多,一对一,多对多。其中一对多关系中也隐含了多对一关系。 表间关系是数据库操作中的重要技术点,非常有必要理解与掌握。 1、 一对多表间关系的定义 一对多表间关系实现语法 以一对多关系为例, 子表侧,与父表是一对多关系,父表侧,可以反向查询子表数据,与子表是多对一关系。 class Parent(Base): __tablename__ = "parent_table" id: Mapped[int] = mapped_column(primary_key=True) children: Mapped[List["Child"]] = relationship(back_populates="parent") class Child(Base): __tablename__ = "child_table" id: Mapped[int] = mapped_column(primary_key=True) parent_id: Mapped[int] = mapped_column(ForeignKey("parent_table.id")) parent: Mapped["Parent"] = relationship(back_populates="children") 说明: 1)在子表中添加外键字段,以及relationship()引用, 2)在父表中添加relationship()引用,用于反向查询。 示例代码 父表:company, 子表 person, 表结构类定义如下。 from sqlalchemy.orm import DeclarativeBase, Session from sqlalchemy.