- 博客(21)
- 收藏
- 关注
原创 手写一个VueRouter
最近在看VueRouter的源码,所以也手动实现了一下并写这篇文章记录,以免忘却。代码结构首先,我用vue-cli创建了一个demo,先来看看VueRouter是怎么使用的。import Vue from "vue";import App from "./App.vue";import VueRouter from 'vue-router'import store from "./store"import Home from '../views/Home.vue'Vue.use(.
2020-12-13 23:39:56 232
原创 Vue中v-model的.trim修饰符
引言修饰符:.lazy- 取代input监听change事件经过测验,我认为这句话的意思是:个人认为,取代这个说法不妥。因为即使使用了.lazy,input和change事件也都会存在,不存在谁取代谁,而且依然是只要输入就触发input事件,失焦或者回车之后才触发change事件。区别在于,不使用.lazy修饰符时,只要输入值就会改变原始值,而使用.lazy修饰符是在失焦或点击回车之后原始数据才会改变。测试使用.lazy前<div class="vmod"&...
2020-06-01 12:21:01 2046
原创 Vuex的模块化
前言Vux是单一状态树,所有的状态会集中为一个比较大的对象。当应用非常复杂时,store对象就会变得臃肿。因此,Vuex允许分割模块,每个模块拥有自己的state、getter、mutation、action、module(嵌套子模块)。一、文件结构相比普通的Vuex,模块化的Vuex需要一个modules文件夹来存放不同的模块。官方标准是一个模块一个js文件,当然模块复杂的话,也可以拆分出来。// store 目录结构| actions.js| getters.js.
2020-05-30 14:30:30 386
原创 一 变化侦测之Object的变化侦测
在Vue中Object和Vue的变化侦测使用的是不同的方法。这一篇介绍一下Object的侦测方式1.什么是变化侦测?Vue.js会自动通过状态生成DOM,将其在页面上显示出来,这个过程叫做渲染。状态可能是随时都变化的,那么页面如何知道什么时候状态发生了变化,什么时候去渲染呢?变化侦测就是来做这件事的。变化侦测就是侦听状态的变化,然后通知页面渲染。变化侦测有两种方式,一种是推(Vue...
2020-04-29 22:52:06 211
原创 防抖与节流
防抖防抖是在n秒内某个函数只执行一次,如果n秒内重新触发则重新计算输入后过wait毫秒再查询(延迟查询)funciton debounce(func, wait){ let timeout; return function(){ if(timeout) clearTimeout(timeout); timeout = setTimeout...
2020-03-14 20:30:12 131
原创 Python网络编程之高级网络操作
1. 半开放socketsocket是双向的-----socket的两端都可以进行读或写。有的时候我们需要仅仅在一个方向上传输数据,这时候就用到了半开放socket。半开放socket可以用于以下情况:确保所有的数据都已经被传输完毕。 捕获潜在的程序错误,这些错误是由于读了不能读的socket,或者写了不能写的socket。 您的程序使用了fork()或多线程,而您想防止其他进程或线程...
2018-12-26 19:09:48 180
原创 Python网络编程之域名系统
域名系统(DNS)是一个分布式的数据库,它主要用来把主机名转换成IP地址。DNS系统之所以存在主要是因为方便用户记忆和更改IP地址不影响域名。4.1 进行DNS查询DNS提供一系列的提名回答,每个提名给出一个更详细的答案,直到获得最终答案。作为一个例子,让我们来看一下查询www.external.example.com。首先,您的程序会和操作系统配置文件指定的本地名称服务器通信。这...
2018-12-18 19:59:13 344
原创 Python网络编程之网络服务器
3.1 准备连接对于一个客户端来说,建立一个TCP连接的过程分两步,包括建立socket对象以及调用connect()来建立一个和服务器的连接。对于服务器,需要以下4步:建立socket对象 设置socket选项(可选) 绑定到一个端口(同样,也可以是一个指定的网卡) 侦听连接这里有个代码的片段可以实现这些功能:host = '' #Bind to all interfa...
2018-12-17 21:01:54 345
原创 Python网络编程之网络客户端
如果Python中没有一个可以实现您想要的协议的模块,或者您想修改或扩展一个已经存在的Python模块的时候,本章的知识是非常有用的。2.1 理解socketsocket是曹卓系统中I/O系统的延伸部分,它使进程和机器之间的通信成为可能。一个socket允许您使用标准的操作系统和其他的计算机,以及您自己的机器上的不同进程来通信。2.2 建立socket对于一个客户端来说,建立一...
2018-12-15 22:02:27 217
原创 Python 网络编程简介
1.1在用Python进行网络编程的时候,你会发现大致有两种情况:一是某些协议已经有了Python模块,二是需要自己编写实现协议。即使是已经实现的模块,理解其底层是如何实现的也很有益处。#!/usr/bin/env python3 # -*- coding:utf-8 -*-# Simple Gopher Clinet - Chapter 1 - gopherclient.pyi...
2018-12-11 20:49:58 200
原创 Python之使用期物处理并发
期物指一种对象,表示异步执行的结果。17.1 示例:网络下载的三种风格为了高效处理网络I/O,需要使用并发,因为网络有很高的延迟,所以为了不浪费CPU周期去等待,最好在收到网络响应之前做些其他的事。用三个程序说明这一点:flags.py:下载完一个图像,并将其保存在硬盘中之后,才请求下一个图像。 flags_threadpool.py:使用concurrent.futures模块...
2018-12-06 14:48:10 170
原创 Python之使用asyncio包处理并发
18.1 线程与协程对比首先,分析spinner_thread.py脚本。# -*- coding:utf-8 -*-import threadingimport itertoolsimport timeimport sysclass Signal:#这个类定义一个简单的可变对象:其中有个go属性,用于从外部控制线程 go = Truedef spin(ms...
2018-12-03 21:20:54 153
原创 python 之 协程
1.用作协程的生成器的基本行为def simple_coroutine():#协程使用生成器函数定义:定义体中有yield关键字 print('-> coroutine started') x = yield #yield在表达式中使用,如果协程只从客户那里接收数据,那么产出的值是None--这个值是隐式的,因为yield关键字后面没有表达式 print('-&...
2018-11-27 20:46:05 148
原创 flask学习笔记之大型程序的结构
我们将介绍一种使用包和模块组织大型程序的方式。7.1 项目结构Flask 程序的基本结构如示例 7-1 所示。 这种结构有4个顶级文件夹:1)Flask程序一般都保存在名为app的包中。2) migrations文件夹包含数据库迁移脚本3)单元测试编写在tests包中4)venv文件夹包含Python虚拟环境同时还创建了一些新文件:requirements.te...
2018-11-23 21:51:21 263
原创 flask坑之TypeError: __init__() got an unexpected keyword argument 'lable'
学习flask 的web表单插件flask-wtf时,运行程序出现:TypeError: __init__() got an unexpected keyword argument 'lable'经查找发现原因是html中的<form methods="post">.....</form>的methods错误的写成了method。 ...
2018-11-23 00:18:19 3062
原创 flask学习笔记之电子邮件
包装了smtplib的Flask-Mail扩展能更好地和Flask集成。使用Flask-Mail提供电子邮件支持Flask-Mail会连接上SMTP服务器,并把邮件交给这个服务器发送。如果不进行配置,Flask-Mail会连接localhost的端口25,无需验证即可发送电子邮件。下表列出了可用来设置SMTP服务器的配置。连接外部服务器的过程如下:import os#.......
2018-11-22 15:32:28 221
原创 flask 学习笔记之数据库
5.1 SQL数据库数据库的基本概念-------------------略。5.2 NoSQL数据库数据库的基本概念-------------------略。5.3 使用SQL还是NoSQL略。5.4 Python数据库框架选择数据库框架时,你要考虑很多因素。易用性、性能、可移植性、Flask集成度。5.5 使用Flask-SQLAlchemy管理数据库Flask-SQLAl...
2018-11-20 21:31:59 164
原创 flask学习笔记之web表单
Flask-WTF4.1跨站请求伪造保护默认情况下,Flask-WTF能保护所有表单免受跨站请求伪造的攻击。恶意网站把请求发送到被攻击者已登陆的其他网站时就会引发CSRF攻击。详细的CSRF攻击原理见:https://www.cnblogs.com/wangyuyu/p/3388169.html为了实现CSRF保护,Flask-WTF需要程序设置一个秘钥,然后根据这个秘钥生成加...
2018-11-20 16:29:21 142
原创 flask学习笔记之模板
第三章 模板3.1 Jinja2模板引擎形式最简单的Jinja2模板就是一个包含响应文本的文件。如示例3-1:<--示例3-1 templates/index.html--!><h1>Hello world!</h1>3.1.1 渲染模板默认情况下,Flask在templates文件夹下寻找模板。示例3-3:# -*- coding...
2018-11-17 17:15:42 135
原创 flask学习笔记之基本结构
2.1初始化所有flask程序都必须创建一个程序实例。flask使用WSGI来实现客户端和服务器之间的请求传送。经常使用以下代码创建: 1. from flask import Flask 2. app = Flask(__name__)把__name__传入后,flask用这个参数决定程序的根目录,以便以后可以寻找其他资源文件。这只是一种初始化方式,后续会介绍更复杂的。2....
2018-11-15 16:09:36 115
原创 目录处理命令
mkdir :make directory -p递归创建cd:change directorypwd:print working directoryrmdir:remove empty directorycp:copy -r copy directory -p保留文件属性
2018-02-08 19:33:29 100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人