6.1——我在CSDN的创作纪念日

news2024/11/24 16:34:37

文章目录

    • ⭐前言
    • ⭐相遇CSDN
    • ⭐切换到编程赛道的契机
      • 💖 好好的美工为什么切换编程赛道
      • 💖 转换编程赛道的催化剂
    • ⭐写博客的目的——写给未来的自己
      • 💖 初衷——为学习铺路
      • 💖 博客是灯——照亮前行的路
      • 💖 博客是路——互联网人走向大佬的捷径
    • ⭐近期的成就
      • csdn的新星计划认可
      • 代码的成就
        • 💖 后端
        • 💖 小程序
    • ⭐近期的憧憬
    • ⭐最后

⭐前言

大家好!我是yma16,本文分享我和csdn的故事。
光阴似箭,时光荏苒,不知不觉我与csdn已经相遇了6年,创作时间4年。
before-csdn

⭐相遇CSDN

注册csdn账号
应该是5年前,在我读大三的时候在一次偶然的百度搜索中搜到了csdn,然后注册了csdn的账号。

在学校时大三的时候总想着要做点什么,不甘颓废,早上去跑步。
下面是我早上去北区的校园跑步时拍下早晨校园操场的一张图片。

校园操场的图片

当时第一次发csdn,是因为第一次上python课程觉得用python来计算素数式多么方便的一件事情,看着程序运行起来内心都很愉悦。

fisrt-blink

每次编写博客之后都会感觉到今天的学习有所收获,太酷啦太酷啦
金闪闪

⭐切换到编程赛道的契机

我是一名数字媒体技术的学生,在校期间其实大部分接触时ps、ae、maya的后期建模软件。
以下是我在校期间因兴趣爱好而搭建的模型。
建模图片

💖 好好的美工为什么切换编程赛道

  1. 编程可以发散我的逻辑思维
  2. 写代码运行通过的时候,有多巴胺刺激的感觉
  3. 我发现后期的软件底层都是代码写的,我觉得编程更酷了

💖 转换编程赛道的催化剂

数媒在毕业季不好找本专业的工作!
善逸哭

⭐写博客的目的——写给未来的自己

💖 初衷——为学习铺路

我知道记忆是间断性的,这一周我学的内容可能在下周就忘了,好记性不如烂笔头,所以我选择写笔记给未来的自己看,当我不清楚知识点时再回过来看自己的笔记。

💖 博客是灯——照亮前行的路

如果当我有一天忽然摆烂或者迷茫了,不知道该干什么的时候,我可以回过头来看看我写的博客,啊,原来我以前做了这么多,嗷,我那个笔记怎么写的那么烂~可以这样找回自我。

💖 博客是路——互联网人走向大佬的捷径

今年是2023年了,互联网时代,csdn提供丰富的技术文章和教程:有大量的技术文章和教程,可以帮助开发者提高技术水平,掌握最新技术。

⭐近期的成就

csdn的新星计划认可

2023node赛道中csdn的认可
node-chap

代码的成就

我感觉我写的最好的代码是动态配置我的小程序思路,解决了我发布修改文案还要审核的痛点!

我的小程序架构是前端原生,后端django+vue

💖 后端

model

from django.db import models
from django.utils import timezone
# Create your models here.


class DictModel(models.Model):
    kind = models.TextField(blank=True,null=True)
    #种类
    title=models.CharField(blank=True, null=True, max_length=20)
    #标题
    describe=models.TextField(blank=True,null=True)
    #配置项 json字符串
    option=models.TextField(blank=True,null=True)
    #发布时间
    publish=models.DateTimeField(default=timezone.now)
    class Meta:
        ordering=("-publish",)
        db_table = 'DictModel'
    def __str__(self):
        return '%s' % (self.title)

view

from django.http import JsonResponse
import json
from .models import DictModel


def index(request):#获取所有的文章
    try:
        if request.method == 'GET':
            allDictModel = DictModel.objects.order_by('publish')
            resData = []
            for dicItem in allDictModel:
                resData.append({
                    "title":  dicItem.title,
                    "option": dicItem.option
                })
            return JsonResponse({"code": 200, "data": resData, "msg": 'return all dict'})
        elif request.method == 'POST':
            print('post')
            postData = json.loads(request.body.decode('utf-8'))
            print(postData)
            kind = postData['kind']
            allDictModel = DictModel.objects.order_by('publish')
            resData = []
            for dicItem in allDictModel:
                if str(kind) == str(dicItem.kind):
                    resData.append({
                        "title":  dicItem.title,
                        "option": dicItem.option
                    })
            return JsonResponse({"code": 200, "data": resData, "msg": 'serch dict success'})
        return JsonResponse({"code": 0, "data": [], "msg": 'not allowed'})
    except Exception as e:
        return JsonResponse({"code": -1, "data": [], "msg": str(e)})

💖 小程序

app入口获取配置

// app.js
App({
  homePageArticleId: 32,
  lifePageArricleId: 35,
  wxProgramConfig: {
    authorPageConfig: {
      title: "记忆碎片",
      userImageUrl: 'https://yongma16.xyz/staticFile/common/img/logo.png',
      loginTitle: '点击授权',
      detailInfo: '关于:code笔记',
      nextPage: "/pages/home/home",
      userPrefix: '昵称:',
      userName: '月牙天冲',
      designPlaceholder: '自定义名称',
      joinTitle: '微信登录',
      isOldVersion: false
    },
    homePageConfig: {
      headBackground: [
        { class: 'header-swiper-one', content: '数据分析', articleId: 32, img: 'https://yongma16.xyz/staticFile/common/img/data.png' },
        { class: 'header-swiper-two', content: '前端开发', articleId: 33, img: 'https://yongma16.xyz/staticFile/common/img/front.png' },
        { class: 'header-swiper-three', content: '全栈开发', articleId: 34, img: 'https://yongma16.xyz/staticFile/common/img/back.png' }],
      bottomStyleConfig: {
        tabMenuText: '记忆碎片',
        homePageText: '主页',
        blogText: '博客',
        apiText: 'openai',
        aboutText: '关于'
      },
      bottomBtn: 'target',
    },
    apiPageConfig: {
      articleId: 44,
      aiConfig: {
        avatarUrl: 'https://yongma16.xyz/staticFile/common/img/aiTop.jpg',
        bgUrl: 'https://yongma16.xyz/staticFile/common/img/aiBg.jpg'
      },
      mode: 'introduce',
      option: 'introduce,openAiUse',
      layoutConfig: {
        introduceText: 'api介绍',
        useText: '使用',
        returnText: '返回介绍',
        sendText: '发送',
        searchText: '关键词查询',
        reportText: '复制数据',
        copyText: '复制',
        pasteText: '粘贴',
        upText: "",
        downText: "",
        errorMsg: 'openai的服务器异常!',
        emptyText: '欢迎',
        storageKey: 'openAiOptionsConfig',
        permissionTitle: '很抱歉您没有权限!',
        permissionContent: '请联系微信号:cse-yma16\r\n 需要1元开通权限\r\n1元可支持100条消息!',
        wxInfoImg: 'https://yongma16.xyz/staticFile/common/img/userInfo.png',
        isShowOpenAi:true,
        limitMsgCount: 10,
        confirmText: '添加微信',
        cancelText: '返回'
      }
    },
    aboutPageConfig: {
      articleId: 35
    }
  },
  loginStatus: '',
  globalData: {
    userInfo: '',
    hasUserInfo: false,
    geoJson: {},
    hotData: [],
    /**
     * @type object[{name:'',adcode:''}]
     */
    geoAdcodeMap: [],
    targetItem: {},
  },
  remoteConfig: {
    baseUrl: 'https://yongma16.xyz'
  },
  // 引入`towxml3.0`解析方法
  towxml: require('/towxml/index'),
  // 引入eval 自定义的eval
  eval_des: require('/eval-pack/define-function/define-function'),
  /**
   * 转换text
   * @param {string} text 
   */
  changeMrkdownText(text) {
    const markdownText = this.towxml(text, 'markdown', {
      theme: 'light', //主题 dark 黑色,light白色,不填默认light
      events:{
        tap:(e)=>{
          console.log('e',e)
          if(e&&e.target&&e.target.dataset.data){
            const {attrs,tag}=e.target.dataset.data
            if(tag==='img'){
              const {src}=attrs
              wx.previewImage({
                current: src, // 当前显示图片的http链接
                urls: [src] // 需要预览的图片http链接列表
              })
            }
          }
        }
      }
    });
    return markdownText
  },
    /**
   * 转换html
   * @param {string} text 
   */
  changeHtmlText(text) {
    const markdownText = this.towxml(text, 'html', {
      theme: 'light', //主题 dark 黑色,light白色,不填默认light
      events:{
        tap:(e)=>{
          console.log('e',e)
          if(e&&e.target&&e.target.dataset.data){
            const {attrs,tag}=e.target.dataset.data
            if(tag==='img'){
              const {src}=attrs
              wx.previewImage({
                current: src, // 当前显示图片的http链接
                urls: [src] // 需要预览的图片http链接列表
              })
            }
          }
        }
      }
    });
    return markdownText
  },
  getUserProfile: function (e) {
    // 推荐使用 wx.getUserProfile 获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
    // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  onLaunch: function (options) {
    console.log('onLaunch', options)
    // 获取配置项目
    const that = this
    wx.showLoading({
      title: '加载配置中',
    })
    wx.request({
      url: 'https://ip/path',
      method: 'POST',
      data: {
        kind: 'wxConfig'
      }, success: function (res) {
        console.log('res', res)
        wx.hideLoading({
          success: (loadRes) => { console.log(loadRes) },
        })
        if (res.data.data && res.data.data[0].option) {
          that.wxProgramConfig = JSON.parse(res.data.data[0].option)
          wx.navigateTo({
            url: 'pages/index/index',
            success: function (res) {
              // 通过 eventChannel 向被打开页面传送数据
              console.log('res', res)
            }
          });
        }
        else {
          wx.navigateTo({
            url: 'pages/index/index',
            success: function (res) {
              // 通过 eventChannel 向被打开页面传送数据
              console.log('res', res)
            }
          });
        }
      },
      fail: function (r) {
        console.log('r', r)
        wx.hideLoading({
          success: (loadRes) => { console.log(loadRes) },
        })
        wx.navigateTo({
          url: 'pages/index/index',
          success: function (res) {
            // 通过 eventChannel 向被打开页面传送数据
            console.log('res', res)
          }
        });
      }
    })
    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力');
    } else {
      wx.removeStorageSync('currentUserInfo');

      const currentUserInfo = wx.getStorageSync('currentUserInfo')
      if (currentUserInfo && currentUserInfo.nickName) {
        console.log('success')
      } else {
        wx.navigateTo({
          url: 'pages/index/index',
          success: function (res) {
            // 通过 eventChannel 向被打开页面传送数据
            console.log('res', res)
          }
        })
      }

      // 用户登录
      const that = this
      wx.login({
        success(res) {
          console.log('res login', res)
          that.globalData.loginStatus = res
        }
      })
      wx.getSetting({
        success(res) {
          console.log('res set', res)
          that.globalData.setting = res
        }
      })
    }
  }
});

⭐近期的憧憬

创作规划

  1. 学习其他优秀博主的文章编写方式
  2. 学习新技术之后再csdn做发文分享
  3. 费曼学习法,学了之后做个demo发表博客,讨论交流

⭐最后

💖 最后感谢金主csdn,markdown编辑器是真的好用, 再次感谢您的阅读,如有错误或者不足欢迎指出! 💖

cartoon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/599659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wenet-基于预训练模型进行增量训练

1867-154075-0014 重中之重 run.sh脚本分析 wenet aishell脚本解析_weixin_43870390的博客-CSDN博客 一、准备工作 第一步:准备训练数据,拷贝到远程服务器 将准备好的数据文件0529_0531_dataset,上传到恒源云上的/hy-tmp/wenet/example…

数据结构与算法10:递归树、Trie树、B+树

目录 【递归树】 【Trie 树】 【B树】 【每日一练:最长公共前缀】 【递归树】 递归的思想是将大问题分解为小问题,然后再将小问题分解为更小的问题,直到问题的数据规模被分解得足够小,不用继续递归分解为止。如果把这个一层…

Effective第三版 中英 | 第2章 创建和销毁对象 | 用私有构造器或者枚举类型强化 Singleton 属性

文章目录 Effective第三版前言第二章 创建和销毁对象用私有构造器或者枚举类型强化 Singleton 属性 Effective第三版 前言 大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 effective-java 书籍。同时也把自己学习该书…

如何在本地配置Github的项目--Python

如何在本地配置Github的项目 0. 引言1. 初步预览2. 配置环境2.1 环境已经给出2.2 环境未曾给出 3. 数据配置4. 依次调试5. 配置完成总结 0. 引言 Github上存在大量的代码。当下载下来后可能会存在疑惑:如何在本地配置对应的项目呢? 为了帮助新手解决这一…

【Android开发基础】购物车代码整理

文章目录 一、数据库设计二、Home界面三、购物车模块四、添加五、源代码 这个月总算忙完了,总算能够抽出时间来,认真写一下博客了。整理一下购物车的代码 一、数据库设计 基于SqLite简单设计一个数据存储逻辑 实体(接收数据) im…

【数据加密】古典密码Playfair

文章目录 一、引言1、主要任务2、分支3、密码体制分类4、攻击密码系统 二、普莱费厄体制1、构造字母表,设为密钥矩阵2、设立加密方法3、加密解密4、字典集合5、结果 一、引言 1、主要任务 解决信息的保密性和可认证问题,保证信息在生成、传递、处理、保…

Swin-Transformer详解

Swin-Transformer详解 0. 前言1. Swin-Transformer结构简介2. Swin-Transformer结构详解2.1 Patch Partition2.2 Patch Merging2.3 Swin Transformer Block2.3.1 W-MSA2.3.2 SW-MSA 3. 模型配置总结 0. 前言 Swin-Transformer是2021年微软研究院发表在ICCV上的一篇文章&#x…

数据的存储(浮点型)

目录 浮点型存储的规则 1.前面我们已经学过了整形在数据中的存储是以原码,反码,补码的形式在内存中存储的,那么浮点数是以什么样的形式存储的呢? 接下来我们通过一段代码来观察——> int main() {int n 9;float* p (float*…

String AOP的使用

面向切面编程,面向特定方法编程,以方法为对象,在不修改原方法的基础上,对方法进行操作扩展等,底层是通过动态代理实现的 使用开发步骤: 1、创建一个类,加上Aspect声明为一个AOP切面类&#xff…

2023 重新开始

感觉搞 IT 的日子最近都有点不太好过。 早上接到公司电话说今天是一个大日子。 为什么是大日子,相信所有人都是懂的。这次公司将会经历一次非常大的裁员,很不幸也在列表中。不过感觉这个好像也没有什么关系。 因为早就在意料之中的事情,经历…

c语言之结构体(初阶)

目录 1:结构体类型的声明 2:结构体初始化 3:结构体成员访问 4:结构体传参 1:结构体类型的声明 1:为啥要有结构体,因为当我们描述一个复杂对象的时候,可能平时我们的一个类型不能…

常见的五种排序

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C 🔥座右铭:“不要等到什么都没有了,才下…

批量提取某音视频文案(二)

牙叔教程 简单易懂 之前写过一篇 批量提取某音视频文案 , 在之前的教程中, 我用的是微软的语音转文字功能, 今天我们换个方法, 使用 逗哥配音 的 文案提取 功能 准备工作 下载视频和音频 我在github找到的是这个仓库 https://github.com/Johnserf-Seed/TikTokDownload 注意一…

VLANIF虚接口案例实践

1)拓扑 2)需求: -所有PC能够ping通自己的网关 -实现vlan间互通,实现所有的PC互通 3)配置步骤: 第一步:给pc配置IP地址 第二步:交换机创建vlan,做access和trunk -所有的交换机都配…

传统图形学对nerf的对比与应用落地

作者今年参加了China3DV的盛会,大会的发表、线下讨论、学者、工业界等等的交流着实对于Nerf有了更深的思考,以下是作者的抛砖引玉,如有不当之处敬请指出~ 传统图形学与nerf的简介: 传统图形学:显示表达几何表达方式&…

【CloudCompare教程】010:点云的裁剪功能(分段、裁剪、筛选)

本文讲解CloudCompare点云的裁剪功能(分段、裁剪、筛选)。 文章目录 一、点云的分段二、点云的裁剪三、点云的筛选一、点云的分段 加载案例点云数据,如下图所示: 选中图层点云,点击工具栏中的【分割】工具。 点击【激活线状选择】工具: 在需要裁剪的点云上绘制现状裁剪范…

使用免费的SSL证书将nginx配置的普通网站修改为HTTPS网站

一、需求说明 已经在Centos8系统中使用nginx搭建了网站;但是该网站没有实现HTTPS协议不安全;现需要将网站升级为HTTPS站点。 Linux环境对Nginx开源版源码下载、编译、安装、开机自启https://blog.csdn.net/xiaochenXIHUA/article/details/130265983?spm=1001.2014.3001.5501

chatgpt赋能python:Python交易接口简介

Python交易接口简介 Python作为一种高级编程语言,被广泛用于各种不同的领域,其中包括金融市场交易。Python交易接口提供了一种优雅而简单的方式,使得交易者能够方便地执行自己的交易策略。 什么是Python交易接口? Python交易接…

Effective第三版 中英 | 第2章 创建和销毁对象 | 考虑静态工厂方法而不是构造函数

文章目录 Effective第三版第2章 创建和销毁对象前言考虑静态工厂方法而不是构造函数 Effective第三版 第2章 创建和销毁对象 前言 大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 effective-java 书籍。同时也把自己…

基于SSM的人才招聘网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…