大家注意下,这个小偏方是小编的朋友提供的,说是效果很好,小编也不需要减肥,所以没有尝试过。这里呢仅供参考。如果出现了不适或者其他情况,和小编无关哦。
下载.jpeg

  • 桑叶5g(一小把)
  • 菊花5g(一大把)
  • 枸杞5g(24粒)
  • 决明子5g(2小勺)
  • 山楂10g(大小10片)
  • 茶5g(一大嘬)

本来呢想封装成一个组件的,但是呢代码不是很多就直接拿过来用吧。主要用与轮番显示公告,并且如果公告文字太长就会显示为省略号,是不是很好用呢。小编现在已经习惯吧样式写在接口里面了,入股不喜欢,那么你就拆出去吧。这也是最近被一个很厉害的人带的,小编之前总是会把样式单独写的。
上代码吧。哈哈哈哈
11.jpeg
wxml:

 <view style="display:flex;align-items:center;height: 70rpx;background:#FFFFFF;padding: 10rpx 20rpx;">
        <image src="https://www.sunxiaoning.com/usr/uploads/2019/03/3616970405.jpeg;height:50rpx" />
        <swiper style="width:90%;height: 55rpx;padding-left:10rpx;display:flex;align-items:center;" vertical="true" autoplay="true" circular="true" interval="2000">
            <block wx:for="{{msgList}}">
                <navigator url="/pages/index/index" open-type="navigate">
                    <swiper-item style="display:flex;align-items:center;">
                        <view style="font-size: 25rpx;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;letter-spacing: 2px;">{{item.title}}</view>
                    </swiper-item>
                </navigator>
            </block>
        </swiper>
    </view>

js代码

 this.setData({
                    msgList: [{
                        title: "小宁博客"
                    },
                    {
                        title: "小宁博客-孙肖宁的个人博客"
                    },
                    {
                        title: "小宁博客-孙肖宁的个人博客;小宁博客-孙肖宁的个人博客"
                    }
                    ]
                });

大家可能疑惑了,微信小程序有自己的showMode,而且API十分的完善,为啥还要自己封装呢?难道自带的有bug?小编会告诉你No。因为微信小程序自带的showModel是固定的,只能用显示文字,如果你想显示表单,并且用户可以输入,那么微信小程序自带的就不能使用了吧,一般就是再写个输入界面,那多麻烦啊,还不如自己封装一个showMode的组件呢。下面小编给大家看下小编怎么做的。仅供参考哈。
首先是wxml:

<view class='mask' wx:if='{{show}}'>
    <view class='modal-content'>
        <view class="title">{{title}}</view>
        <slot></slot>
        <view class='modal-btn-wrapper'>
            <view class='cancel-btn' bindtap='cancel' wx:if="{{showCancel}}" style="color:{{cancelColor}}">{{cancelText}}</view>
            <view class='confirm-btn' bindtap='confirm' style="color:{{confirmColor}}">{{confirmText}}</view>
        </view>
    </view>
</view>

样式wxss:

.mask {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 9999;
}

.modal-content {
    display: flex;
    flex-direction: column;
    width: 85%;
    padding: 10rpx;
    background-color: #fff;
    border-radius: 15rpx;
}

.title {
    font-size: 40rpx;
    text-align: center;
    padding: 15rpx;
}

.modal-btn-wrapper {
    display: flex;
    flex-direction: row;
    height: 100rpx;
    line-height: 100rpx;
    border-top: 2rpx solid rgba(7, 17, 27, 0.1);
}

.cancel-btn, .confirm-btn {
    flex: 1;
    height: 100rpx;
    line-height: 100rpx;
    text-align: center;
    font-size: 32rpx;
}

.cancel-btn {
    border-right: 2rpx solid rgba(7, 17, 27, 0.1);
}

.main-content {
    flex: 1;
    height: 100%;
    overflow-y: hidden;
}

然后是js

Component({

    /**
     * 组件的属性列表
     */
    properties: {
        title: {
            type: String,
            value: '提示'
        },

        //是否显示取消按钮
        showCancel: {
            type: Boolean,
            value: true
        },
        //取消按钮文字
        cancelText: {
            type: String,
            value: '取消'
        },
        //取消按钮颜色
        cancelColor: {
            type: String,
            value: '#000000'
        },
        //确定按钮的文字
        confirmText: {
            type: String,
            value: '确定'
        },
        //确定按钮的颜色
        confirmColor: {
            type: String,
            value: '#576B95'
        },
        //是否显示modal
        show: {
            type: Boolean,
            value: false
        },
    },

    /**
     * 组件的初始数据
     */
    data: {

    },

    /**
     * 组件的方法列表
     */
    methods: {
        // 取消函数
        cancel() {
            this.setData({
                show: false
            })
            this.triggerEvent('cancel')
        },
        // 确认函数
        confirm() {
            this.setData({
                show: false
            })
            this.triggerEvent('confirm')
        }
    }
})

最后搞定:
model.png

小编不是忘记了密码,而是密码被人改了,真尴尬。用邮箱找回好像是不可以的,小编发现,管理员或者说是创始人的秘密是无法通过邮箱来找回的。那么有解决办法吗。当然有。你只需要登录uc_server后台:http://您的域名/uc_server/admin.php输入密码
就可以登录了,那么密码是啥呢,密码就是你建立这个论坛时候的密码,如果忘记了也不要紧,你只需要登录你的服务器,找到uc_server/data/config.inc.php这个文件
将以下两行代码

define('UC_FOUNDERPW', 'xxxx');
define('UC_FOUNDERSALT', 'xxxx');

替换为

define('UC_FOUNDERPW', '047099adb883dc19616dae0ef2adc5b6');
define('UC_FOUNDERSALT', '311254');

你就可以使用123456789这个密码登录到uc_server后台了,然后再更改你的管理员密码就可以了。
小编在这里提醒下大家,密码不要设置的太简单了,很危险的。

首先你需要在你要实现的界面里面的json配置文件里面填一个配置:"enablePullDownRefresh": true允许该页面下拉刷新,上拉加载。
然后在你的js文件中实现你的方法就可以了。
这两个方式主要是你上拉和下拉的时候执行的,里面的逻辑还是需要自己去实现。

   // 页面下拉刷新的时候执行
   onPullDownRefresh: function () {
    
   },

   // 页面上拉触底事件(上拉加载更多)
   onReachBottom: function () {
      
   },

一般做法是,在你的页面里面写一个加载数据的方法,在onload或者onshow的时候调用。所以下拉刷新的时候只需要你再重新调用这个方法就可以,不过要把里面的值清空。而在上拉加载的时候,就是把数据使用concat方法进行追加。具体业务实现还要服务端的分页。不会的可以给小编留言哦。

微信小程序也是可以引导用户关注公众号的,不过呢使用场景很严格,大家使用的时候注意一下哦。该组件限定最小宽度为300px,高度为定值84px。

代码片段:

<official-account></official-account>

使用前提:

  • 小程序和公众号必须同一主体。
  • 小程序打开的场景值:扫小程序码场景(场景值1047,场景值1124),从聊天顶部场景(场景值1089)中的「最近使用」内打开,从其他小程序返回小程序(场景值1038)时,若小程序之前未被销毁,则该组件保持上一次打开小程序时的状态,扫二维码(场景值 1011)打开 体验版小程序打开,总之场景值有(1011, 1124, 1047, 1089, 1038)
  • 用户未关注公证号。
  • 每个页面只能使用一次。
  • 公众号关注组件,场景值为1089(从聊天顶部)不显示

测试环境使用方法

在开发者工具中,编译的时候选择通过二维码编译,选择小程序二维码,进入就可以了。小编发现通过改变场景值是不管用的。

timg.jpeg

python列表中添加元素的方法主要有:append(),extend(), insert()。这三个方法都可以向列表中添加元素,通过参数可以也能实现相同的结果,但是这三个方法的使用是不一样的,参数也是不一样的。各自有各自的使用场景。

  1. append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型。
    例如:

    list1 = [1,2,3,4]
    list2 = [4,5,6,7]
    list1.append(list2)
    # 得到的结果是[1,2,3,4[4,5,6,7]]
  2. extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数。
    例如:

    list1 = [1,2,3,4]
    list2 = [4,5,6,7]
    list1.extend(list2)
    # 得到的结果是[1,2,3,4,4,5,6,7]
  3. insert() 将一个元素插入到列表中,但其参数有两个,第一个参数是索引点,即插入的位置,第二个参数是插入的元素。
    例如:

    list1 = [1,2,3,4]
    list2 = [4,5,6,7]
    list1.insert(1, list2)
    # 得到的结果是[1,4,5,6,7,2,3,4]

小编在这里给大家推荐一个网站的安全管理工具,云锁。这个工具和宝塔面板一起使用既安全,有方便。不过呢,你得先安装宝塔,部署好网站,这样再去安装云锁,不然比较麻烦,这一点一定要注意哦。
下面的常用操作方法都来源于云锁的官网哦。

安装

x86:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_32bit.tar.gz && tar xvzf yunsuo_agent_32bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install

x64:wget https://download.yunsuo.com.cn/v3/yunsuo_agent_64bit.tar.gz && tar xvzf yunsuo_agent_64bit.tar.gz && chmod +x yunsuo_install/install && yunsuo_install/install

注册

/usr/local/yunsuo_agent/agent_smart_tool.sh -u cloud_name -p cloud_passwd
cloud_name就是你注册的用户名
cloud_passwd就是你注册的密码
如果没有账号密码的自己去云锁的官网注册一个

云锁启动/停止/重启/状态

service yunsuo start/stop/restart/status
/etc/init.d/yunsuo start/stop/restart/status

卸载云锁

/usr/local/yunsuo_agent/uninstall

th.jpeg

这次Typecho博客小程序主要是依赖于【成都第七帅】的「WeTypecho」接口插件和微信小程序开源代码 (GitHub代码),并且小编也做了相应的改变,比如部分图片显示不了,小编这里自己已经修改好了,没有的也指定的默认的图片等,由于小编使用的事handsome主题,自定义字段较多,所以导致图片无法正常显示,小编自己也修复了,还没来得急上传到GitHub,有需要的可以私聊我。
现在现编已经上传到自己的github了,有需要的自行下载吧。
https://github.com/xiaoningboke/WeTypecho.git
另外大家也支持下小编,成为小编的小程序的用户吧。谢谢。
gh_212552cde56f_258.jpg

下面来欣赏下小编的小程序吧。
xcx.jpeg

ssh.jpeg

linux上面安装ssh

sudo apt-get install openssh-server

登陆目标机

ssh -p 端口号 用户名@计算机IP
也可以用证书进行登录
ssh -i 私钥 用户名@计算机ip

上传下载文件

  • 从服务器下载到到本地
    scp 用户名@主机ip:/var/www/test.txt(服务器上文件的 )  /var/www/local_dir(本地目录)
  • 从本地上传文件到服务器     
    scp /path/test.txt(本地文件) 用户名@主机ip:/path(服务器地址)