前端做微信支付(vue):https://blog.csdn.net/qq_36656410/article/details/105630379
微信支付主要工作量在后端,前端就是调用后端给的微信支付接口,获取微信支付的相关参数:首先你的安装微信支付模块并引入它// npm install weixin-js-sdkimport wx from weixin-js-sdk;12接下来你需要后端给你一个接口文档类似于这样的
在就是你调用接口了,看代码吧:
1,点击立即支付的代码toPay() { //请求后台接口获取数据 准备进行微信支付 let param = { openId: sessionStorage.getItem(openId), orderCode: this.orderInfo.orderCode, insuredAmt: this.orderInfo.insuredAmt, orderBody: 订单 + this.orderInfo.orderCode, tradeType: JSAPI, clientIp: this.cip, remarks: 测试微信支付 }; apiWechatData(param).then(res => { //成功状态下 if (res.code == 200) { // 存储微信支付数据data let data = res.data; console.log(data); //调用微信支付 this.wexinPay( { appId: data.appId, timeStamp: data.timeStamp, nonceStr: data.nonceStr, package: data.package, signType: data.signType, outTradeNo: data.outTradeNo, paySign: data.paySign }, //成功回调函数 res => { this.
274. H 指数 - 力扣(LeetCode)
思路
func hIndex(citations []int) int { h := 0 sort.Ints(citations) for i := len(citations) - 1; i >= 0 && citations[i] > h; i-- { h++ } return h }
ZZN
[email protected]
中国人/庚辰年春 Chinese/Spring 2000
统计/数据分析/机器学习/优化问题/R语言/Python
Statistics/Data analysis/Machine learning/Optimization problem/R/Python
名义上最喜欢清单 Shape of my heart 约翰·卡尔·弗里德里希·高斯 Johann Carl Friedrich Gauß 豪尔赫·路易斯·博尔赫斯 Jorge Luis Borges 李安/周星驰/罗大佑/绿洲乐队 Ang Lee/Stephen Chow/Tayu Lo/Oasis 金蔷薇/花样年华 Золотая роза/In the Mood for Love 武林外传/飞出个未来/寻妈记 My Own Swordsman/Futurama/HIMYM 鲜牛奶/椰子/蟹黄堡/老爸炒的菜 Fresh milk/Coconut/Krabby Patty/Dad's cooking 小尼/向日葵 Nessie/Sunflower 慢跑/功夫(想要但不会) Jogging/Kung Fu (in my dreams) 梦想/钱/没有压迫和剥削的社会 Dreams/Money/A society without oppression and exploitation 应当从未来的日子夺取欢乐。
-- В.В.马雅可夫斯基《致谢尔盖·叶赛宁》
498. 对角线遍历 - 力扣(LeetCode)
思路 找规律
1. 设x,y为数组下标,x+y为偶数时,向右上遍历。x+y为奇数时,向左下遍历。
2. 在向左下遍历时 先考虑边界1 当前在最后一行,则向右移动一格 y+1;再考虑边界 2 当前在第一列,向下移动一格 x+1; 其他情况 x+1,y-1
3. 在向右上遍历时 先考虑边界1 当前在最后一列,向下移动一格 x+1; 再考虑边界 2 当前在第一行时,向右移动一格 y+1; 其他情况 y+1, x-1
func findDiagonalOrder(mat [][]int) []int { m := len(mat) n := len(mat[0]) elementCount := m * n res := make([]int, 0) x, y := 0, 0 for i := 0; i < elementCount; i++ { res = append(res, mat[x][y]) if (x+y)%2 == 0 { if y == n-1 { x++ } else if x == 0 { y++ } else { x-- y++ } } else { if x == m-1 { y++ } else if y == 0 { x++ } else { x++ y-- } } } return res }
79. 单词搜索 - 力扣(LeetCode)
思路 还是回溯
func exist(board [][]byte, word string) bool { if len(board) < 1 || len(board[0]) > 6 || len(word) > 15 || len(word) < 1 { return false } var backTracking func(board [][]byte, x, y int, wordIndex int, temp string) bool backTracking = func(board [][]byte, x, y int, wordIndex int, temp string) bool { if wordIndex == len(word) { if temp == word { return true } else { return false } } if x >= 0 && x < len(board) && y >= 0 && y < len(board[0]) && board[x][y] == byte(word[wordIndex]) { temp = temp + string(board[x][y]) board[x][y] += 100 res1 := backTracking(board, x+1, y, wordIndex+1, temp) res2 := backTracking(board, x-1, y, wordIndex+1, temp) res3 := backTracking(board, x, y+1, wordIndex+1, temp) res4 := backTracking(board, x, y-1, wordIndex+1, temp) board[x][y] -= 100 return res1 || res2 || res3 || res4 } return false } for i := 0; i < len(board); i++ { for j := 0; j < len(board[0]); j++ { if board[i][j] == word[0] { if backTracking(board, i, j, 0, ) { return true } } } } return false }
面向对象编程 什么是面向对象 面向对象编程的本质:以类的方式组织代码,以对象的组织(封装)数据
三大特性:封装、继承、多态
从代码运行角度考虑是先有类后有对象 (类是对象的模板)
类是一种抽象的数据类型,它是对某一类事物整体描述(定义),但是不能代表某一个具体事物
创建与初始化对象 使用 new 关键字创建对象
(除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下特点:
必须和类的名字相同 必须没有返回值
new 的本质是在调用构造方法(初始化对象值)
IDEA中生成构造器快捷键:alt + insert 重写 静态方法是类的方法,非静态方法是对象的方法,当父类子类有函数名和变量都相同的函数如上图:
有 static 时,b 调用了B类的方法,因为 b 是用B类定义的,没有 static 时, b 调用的是对象的方法,而 b 是用A类 new 的
没 static 时,直接执行子类的方法
重写:需要有继承关系,子类重写父类的方法1.方法名必须相同2.参数列表必须相同3.修饰符:范围可以扩大但不能缩小: public>protected>default>private4.抛出的异常:范围可以缩小,但不能扩大5.快捷:alt + insert --->override;重写、子类的方法和父类必须要一致:方法体不同;为什么需要重写?父类功能,子类不一定需要,或者不一定满足 以下方法不能重写,也无多态: 1.static 方法:属于类,它不属于实例 2.final 常量 3.private方法 封装、继承、多态 封装:属性私有,使用 get/set 来读取改写
继承(final 类无法继承):
大家好,我是DD,已经是封闭在家的第51天了!
最近一直在更新Java新特性和IDEA Tips两个专栏,其他方向内容的动态关注少了。昨天天晚上刷推的时候,瞄到了这个神奇的东西,觉得挺cool的,拿出来分享下:
相信你看到图,不用我说,你也猜到是啥了吧?html里可以跑python代码了!
看到好多Python公众号已经开始猛吹未来了,但乍看怎么觉得有点像JSP?或者一些模版引擎?是进步还是倒退呢?与其瞎想,不如仔细看看这个东东的能力吧!
根据官方介绍,这个名为PyScript的框架,其核心目标是为开发者提供在标准HTML中嵌入Python代码的能力,使用 Python调用JavaScript函数库,并以此实现利用Python创建Web应用的功能。
看到介绍里提到了调用JavaScript函数库的能力,看来跟JSP或者模版引擎还是有区别的。
PyScript 快速体验 官方给了一个例子,可以帮助我们观的感受这个开发框架的能力,不妨跟着DD看看,它能做啥吧!
第一个案例,hello world
代码很简单,就下面这几行。你只需要创建一个html文件,然后复制进去就可以了。
<html> <head> <link rel=stylesheet href=https://pyscript.net/alpha/pyscript.css /> <script defer src=https://pyscript.net/alpha/pyscript.js></script> </head> <body> <py-script> print('Hello, World!') </py-script> </body> </html> 保存好之后,在浏览器里打开就能看到这样的页面了:
回头再看看这个html里的内容,三个核心内容:
引入pyscript的样式文件:<link rel=stylesheet href=https://pyscript.net/alpha/pyscript.css /> 引入pyscript的脚本文件:<script defer src=https://pyscript.net/alpha/pyscript.js></script> <py-script>标签中写具体的python代码来输出Hello World 如果你懒得自己敲代码的话,本文的两个案例代码我打包放在公众号了,需要的朋友可以关注公众号“程序猿DD”,回复:pyscript 获取。
第二个案例,数据定义 + 数据展示
先创建一个data.py文件,然后加入前面的代码。功能很简单,就是随机生成(x,y)的坐标
import numpy as np def make_x_and_y(n): x = np.random.randn(n) y = np.random.randn(n) return x, y 再创建一个html文件,加入下面的代码
python 操作数据库 pymysql python中支持操作MySQL的模块很多 其中最常见的当属'pymysql' # 属于第三方模块 pip3 install pymysql # 基本使用 import pymysql # 1.链接服务端 conn_obj = pymysql.connect( host='127.0.0.1', # MySQL服务端的IP地址 port=3306, # MySQL默认PORT地址(端口号) user='root', # 用户名 password='jason123', # 密码 也可以简写 passwd database='jp04_3', # 库名称 也可以简写 db charset='utf8' # 字符编码 千万不要加杠utf-8 ) # 要善于查看源码获取信息 # 2.产生获取命令的游标对象 cursor = conn_obj.cursor( cursor=pymysql.cursors.DictCursor ) # 括号内不写参数 数据是元组要元组 不够精确 添加参数则会将数据处理成字典 # 3.编写SQL语句 # sql1 = 'show tables;' sql1 = 'select * from teacher;' # SQL语句会被高亮显示 不用惊慌 # sql1 = 'select * from score;' # SQL语句会被高亮显示 不用惊慌 # 4.
内核config 确定已经打开对应驱动,路径如下
Device Drivers -> <*>Sound Card Support -> <*> Advanced Linux Sound Architecture -> [*] USB sound devices -> <*> USB Audio/MIDI driver 或直接搜索CONFIG_SND_USB_AUDIO 安装如下软件包 apt install alsa-utils mplayer 接入USB声卡时log root@main:~# [ 1379.028364] usb 1-1.2: new full-speed USB device number 6 using musb-hdrc [ 1379.304380] input: C-Media Electronics Inc. USB Audio Device as /devices/platform/soc/1c13000.usb/musb-hdrc.1.auto/usb1/1-1/1-1.2/1-1.2:1.3/0003:0D8C:0014.0002/input/input2 [ 1379.389156] hid-generic 0003:0D8C:0014.0002: input: USB HID v1.00 Device [C-Media Electronics Inc. USB Audio Device] on usb-musb-hdrc.
linux mutt+esmtp+fetchmail+procmail 命令行邮箱开发环境配置
安装如下软件包 main@main:~# sudo apt install fetchmail procmail mutt esmtp -y 参考如下缺省配置文件 ~/.fetchmailrc 这里以foxmail为例,user后面填的是你的邮箱地址,password是你的imap授权码,需要在网页版邮箱设置中获取 poll imap.qq.com protocol imap port 993 user ************ password **************** keep ssl mimedecode mda /usr/bin/procmail ~/.procmailrc MAILDIR=$HOME/Mail # main 是我的用户名 DEFAULT=/var/mail/main VERBOSE=off LOGFILE=/tmp/procmaillog :0: inbox/ ~/.muttrc set sendmail=/usr/bin/esmtp set envelope_from=yes set from=发件人名字 发件人邮箱 set use_from=yes set edit_headers=yes #set move=yes set charset=utf-8 set mbox_type = Maildir set folder = $HOME/Mail set spoolfile = $HOME/Mail/inbox set mbox=$HOME/Mail/seen set record=$HOME/Mail/sent set postponed=$HOME/Mail/draft ~/.