<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小歲月丶太着急]]></title><description><![CDATA[难过了，无奈了，放在阳光下晒一晒，学会笑了，虽是苦涩的笑，我也想笑靥如花。可对不起，那些引导我笑的人或物，我却是找不到了。就想着安安静静的一个人，在阳光下默默前行]]></description><link>https://blog.youkuaiyun.com/Small_years</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Small_years]]></copyright><item><title><![CDATA[wx.getUserInfo() API的使用方案流程汇总]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/118669508</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/118669508</guid><author>Small_years</author><pubDate>Mon, 12 Jul 2021 15:33:12 +0800</pubDate><description><![CDATA[注：
wx.getUserInfo() API 官网介绍是获取用户信息功能，但是在小程序中调用时弹出的框展示的是授权登录弹框，所以下文中说的 授权登录 和 获取用户信息 都是指这个功能
所遇问题
本文主要聊一聊wx.getUserInfo() API的使用方案，先撇开这个备受好评（饱受争议）的接口不断改动不谈，仅以一个正常程序请求用户信息就分好几种情况，而每一种情况处理起来都不简单
例如下面的情况：

正常打开小程序，首次进入时的授权
分享时，不同界面的分享，有的界面需要登录，需要登录的界面，直接打开分享的]]></description><category></category></item><item><title><![CDATA[微信小程序端的各种授权逻辑处理，拒绝后再请求时的处理流程汇总]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/117751530</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/117751530</guid><author>Small_years</author><pubDate>Tue, 15 Jun 2021 11:00:59 +0800</pubDate><description><![CDATA[微信小程序端

]]></description><category></category></item><item><title><![CDATA[微信小程序中预览文档不同平台全文档的兼容处理]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/117750410</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/117750410</guid><author>Small_years</author><pubDate>Wed, 09 Jun 2021 17:53:18 +0800</pubDate><description><![CDATA[微信小程序预览文档解决方案
微信小程序中有预览文档的API，但缺点是只能预览固定的几种格式，如下所示

官方文档地址：wx.openDocument()
如果需求是打开一个.txt文档，这种方法就行不通了，那么怎么办呢？
当然是用万能的webVIew，直接把文档链接放到webView中，绝大多数的时候都能打开，至少我还没遇到过打不开的，如果有人遇到过可以在评论区留言哦。但是用webView也有缺点，我在小程序中做了具体测试，不同文件，不同打开方式的体验，大家可以扫码试一下差别
那么就需要有一种方式，如果能用]]></description><category></category></item><item><title><![CDATA[微信小程序中三目运算符的嵌套使用]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/117693689</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/117693689</guid><author>Small_years</author><pubDate>Tue, 08 Jun 2021 16:29:34 +0800</pubDate><description><![CDATA[在小程序的开发过程中，三目运算符是可以嵌套使用的，如果界面上有多个条件来区分不同样式，可以有两种实现方式，一种是用if else判断写多个组件，另一种是使用嵌套的三目运算符可以减少很多代码，下面上代码演示一下使用对比
设一个多条件需求：

字体默认为黑色
1、若num = 1，文字颜色为蓝色
2、若num = 2，文字颜色为绿色
3、若num = 3，文字颜色为红色

不使用三目运算符写法：
  &lt;view wx:if="{{num==1}}" style="color:blue;"&gt;展示文字颜]]></description><category></category></item><item><title><![CDATA[开发uni-app时HBuilderX编辑器使用微信小程序模拟器保存代码无法刷新模拟器问题]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/115655903</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/115655903</guid><author>Small_years</author><pubDate>Tue, 13 Apr 2021 10:26:33 +0800</pubDate><description><![CDATA[HBuilderX修改文件保存后,微信模拟器不会自动刷新,还要再在微信小程序中点击commond + R再编译才能看到具体更新效果
找了官方论坛和一些博客资料，都没找到相关的解决办法
HBuilderX已是最新版本，微信开发者工具已是最新版本
已经设置APPID

...]]></description><category></category></item><item><title><![CDATA[NodeJS使用Sequelize 使用事务时，各方法的传参方式]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/115356443</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/115356443</guid><author>Small_years</author><pubDate>Wed, 31 Mar 2021 20:39:16 +0800</pubDate><description><![CDATA[例子使用的是一个电影对象，需要存储电影基本信息：名称，简介，上映时间，剧照（一对多），电影类型（多对多），演员列表（多对多）
使用非托管事务方法：
//连接数据库
var Sequelize = require("sequelize");
var seq = new Sequelize('sequelize_demo', 'root', '654321', {
  host: '127.0.0.1',
  port: '3306',
  dialect: "mysql",
  dialectOptions:]]></description><category></category></item><item><title><![CDATA[NodeJS中使用Sequelize连接MySQL数据库，多对多关联中，查询出来的数据不正确的问题]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/115326225</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/115326225</guid><author>Small_years</author><pubDate>Tue, 30 Mar 2021 15:33:03 +0800</pubDate><description><![CDATA[情景：在NodeJS中开发RestApi接口，用的是Sequelize连接MySQL，遇到的问题是查询的时候出来的奇葩结果如下：

预期中的结果应该是如下：
[
  {
    "id": 3,
    "title": "标题3",
    "content": "内容3",
    "createdAt": "2021-03-30T06:39:30.000Z",
    "updatedAt": "2021-03-30T06:39:30.000Z",
    "tags": [
      {
    ]]></description><category></category></item><item><title><![CDATA[UIWebView 替换 WKWebView]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/107545013</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/107545013</guid><author>Small_years</author><pubDate>Thu, 23 Jul 2020 19:59:59 +0800</pubDate><description><![CDATA[已经快要到苹果规定更新包不允许使用UIWebView的最后期限了，今天刚把项目中的UIWebView替换完成，记录一下具体遇到的问题
目录一：基本使用二：替换1、scalesPageToFit 属性替换：2、UIWebView 和WKWebView对应代理方法2.1、shouldStartLoadWithRequest2.2、开始加载2.3、加载成功2.4、加载失败3、Native和JS互相调用：3.1、Native调用js3.2、js调用Native4、左滑返回上一步
一：基本使用
首先说下基本用法：
U]]></description><category></category></item><item><title><![CDATA[微信小程序 流式布局 标签布局 自动布局 实现方案]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/107483651</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/107483651</guid><author>Small_years</author><pubDate>Tue, 21 Jul 2020 11:23:37 +0800</pubDate><description><![CDATA[关键字：
微信小程序文字排版布局，微信小程序文字换行布局，微信小程序文字自动布局，微信小程序流式布局，微信小程序文字版瀑布流布局
类似这种效果：

额，具体这叫啥布局，问了几个人，不同人有不同的回答，我自己也叫不出啥名了，写这么多标签，是为了能想起这种布局界面，但是不知道该怎么搜关键词 的童鞋们多一些标签，也增加一些能搜到的可能性。
具体效果如下所示，文字放不开的话，就另起一行，放的开就继续往后排。
效果如下：

代码实现：
.wxml
&lt;view class='itemsMainView'&gt;
]]></description><category></category></item><item><title><![CDATA[微信小程序仿系统预览大图功能]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/107316537</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/107316537</guid><author>Small_years</author><pubDate>Thu, 16 Jul 2020 09:44:05 +0800</pubDate><description><![CDATA[问题：
微信小程序系统自带的 wx.previewImage 预览大图功能很好用，用起来很顺畅丝滑，但是有一个致命问题：预览大图的时候是在新页面中打开，当前页面的生命周期会销毁，如果当前页面中没有实时的东西还好，但如果有类似 &lt;live_player&gt; &lt;live_push&gt; &lt;video&gt; 等组件，或者有计时器之类的变量的时候，你会发现当前页面的这些组件或变量就没法使用了，如果想在当前页面下打开大图，那么就无法使用官方 wx.previewImage 这个方法，这是需要]]></description><category></category></item><item><title><![CDATA[8、Python  机器学习基础知识Pandas库中的DataFrom（二）]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/90020586</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/90020586</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:42:19 +0800</pubDate><description><![CDATA[DataFrom
DataFrame 是一种二维的数据结构，非常接近于电子表格或者类似 mysql 数据库的形式。它的竖行称之为 columns，横行跟前面的 Series 一样，称之为 index，也就是说可以通过 columns 和 index 来确定一个主句的位置。（有人把 DataFrame 翻译为“数据框”，是不是还可以称之为“筐”呢？向里面装数据嘛。)

定义方式：
1、DataFra...]]></description><category></category></item><item><title><![CDATA[7、python类的定义和使用]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89920554</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89920554</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:41:01 +0800</pubDate><description><![CDATA[python中类的定义
（属性不可修改用_修饰）
class Player():
    def __init__(self, name, hp, occr):
        self.name = name
        self.hp = hp
        self.__occr = occr
    def print_Method(self):
        print("nam...]]></description><category></category></item><item><title><![CDATA[6、python 装饰器的使用]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89883622</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89883622</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:40:20 +0800</pubDate><description><![CDATA[装饰器的使用可以很好的拓展函数：例如，有一个在项目中频繁使用的函数：从0到10的8次方中随机挑选n个数，现在要对他进行拓展:（计算该函数的运行时间）
原函数：
def getNumList(n):
    seq = list(range(pow(10,8)))
    x = random.sample(seq, n)
    y = sorted(x)
    return y

result...]]></description><category></category></item><item><title><![CDATA[5、python闭包]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89874577</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89874577</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:39:43 +0800</pubDate><description><![CDATA[函数的闭包
def add (a,b):
    return a+b

名词解释
add 函数名称或者函数的引用
add() 函数的调用
闭包：其实就是函数的嵌套，内部函数引用外部变量，编写规则：返回值为内部函数名
示例：
用闭包函数实现一个计时器
def counter(start = 0):
    list = [start]  # 不能定义成整形，因为生命周期只在本函数内，用序列合适
 ...]]></description><category></category></item><item><title><![CDATA[4、Python函数]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89849772</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89849772</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:38:53 +0800</pubDate><description><![CDATA[函数定义
普通函数定义
def func (a,b,c):
    print('a = %s' % a)
    print('b = %s' % b)
    print('c = %s' % c)

调用
func (1, c = 2, b = 3)

可变长参数函数的定义
在参数的前面加 * ，定义可变长参数
def howLong (first, *other):
    # 统计参数的...]]></description><category></category></item><item><title><![CDATA[3、Python 对异常的操作]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89841431</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89841431</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:38:14 +0800</pubDate><description><![CDATA[捕获所有错误
try:
    file = open("name.txt")
except Exception as e:
    print(' %s ' %e)
finally:
    file.close()

自定义打印出的错误信息（关键字raise）
try:
    raise NameError('helloError')
except NameError:
    print(...]]></description><category></category></item><item><title><![CDATA[2、Python 文件基本操作]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89840431</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89840431</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:36:43 +0800</pubDate><description><![CDATA[函数解释：
//打印文件指针的位置
file6.tell() 

//后面不加参数是读取所有内容，加参数是读取指针所指位置的内容
file6.read(2) 

//seek参数含义：第一个参数代表偏移位置，第二个参数：0代表从文件开头偏移；1代表从当前位置开始偏移；2代表从文件末尾开始偏移
file6.seek(5, 0) 

写入
file1 = open("name.txt", 'w')

...]]></description><category></category></item><item><title><![CDATA[1、python序列知识点]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/89706521</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/89706521</guid><author>Small_years</author><pubDate>Mon, 13 Jul 2020 17:35:58 +0800</pubDate><description><![CDATA[序列：
介绍
以下几种都可以称为序列：字符串，列表，元组

字符串
字符串访问的时候，如果想访问多个元素，中间采用冒号的形式
Chinese_zodList = '鼠牛虎兔龙蛇马羊猴鸡狗猪'
print(Chinese_zodList[0:4])

输出：鼠牛虎兔

支持负号的形式
print(Chinese_zodList[-2])

输出：狗

字符串基本操作

成员关系：（判断成员是否在序列...]]></description><category></category></item><item><title><![CDATA[微信小程序 JavaScript  md5加密中文后的密文不正确]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/106849395</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/106849395</guid><author>Small_years</author><pubDate>Fri, 19 Jun 2020 09:25:26 +0800</pubDate><description><![CDATA[微信小程序md5加密结果不正确
JavaScript md5中文加密结果不一致
js的md5加密方式，网上找到了很多示例，但都有一个问题：如果需要加密的文本里面有汉字的话，加密结果是不正确的，最起码和主流MD5网站的加密结果不一样，放到微信小程序端加密也同样有这个问题
下面代码是我在微信小程序中使用的，经过测试之后的，所有文本都能正确加密，最起码是和主流网站的加密结果是一致的
md5.js:
var rotateLeft = function(lValue, iShiftBits) {
	return(lV]]></description><category></category></item><item><title><![CDATA[OC 血压计 蓝牙BLE4.0 链接踩坑开发]]></title><link>https://blog.youkuaiyun.com/Small_years/article/details/79230724</link><guid>https://blog.youkuaiyun.com/Small_years/article/details/79230724</guid><author>Small_years</author><pubDate>Fri, 05 Jun 2020 15:54:27 +0800</pubDate><description><![CDATA[# 前言



公司项目要连接第三方公司的血压计，由于从来没有做过和蓝牙有关的项目，好奇的心驱使下下也想顺便了解一下这方面的知识，于是主动向领导请求开发这个功能，经过4天的折腾，终于弄好了，（为什么要4天呢？TMD第三天才搞明白原来不是我代码不行，是他们给错文档了，MDZZ，强忍住骂娘的冲动。。。



# 蓝牙基础知识：



## 名词解释：



**BLE**:(Bluetooth...]]></description><category></category></item></channel></rss>