一、简概

因为,前端经常涉及到表单验证,故此篇博客用于记录前端JS对表单验证的方法。

通过表单验证,当对form表单提交时,可以防止不合法的数据传递至后台(以及判空操作)。这里我们先定义一个表单,作为示例,其它的情况都可以此类推。

示例表单

前端表单代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<div>
<form method="get" action="https://www.baidu.com" id="form">
<table align="center" style="margin: 0 auto;">
<tr>
<td><label>用户名</label></td>
<td><input type="text" name="username" placeholder="请输入用户名" style="width: 150px" id="username"></td>
</tr>
<tr>
<td><label>邮箱</label></td>
<td><input type="email" name="email" placeholder="请输入邮箱" style="width: 150px" id="email"></td>
</tr>
<tr>
<td><label>性别</label></td>
<td align="left">
<input type="radio" name="male" value="male" checked>
<input type="radio" name="female" value="female">
</td>
</tr>
<tr>
<td><label>出生日期</label></td>
<td><input type="date" name="birthday" style="width: 150px" id="birthday"></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" name="register" value="注册" style="margin-top: 5px">
</td>
</tr>
</table>
</form>
</div>

前端进行表单验证只需作用在两个地方即可:

  1. 绑定当前需要验证的input标签的离焦事件。

  2. form表单的submit进行全部的input标签判定

    当结果全部返回true才能进行提交,否则无法提交。

一、简单介绍

redis是一款高性能的NOSQL系列的非关系型数据库。主要用于缓存,可提升数据访问的性能。这里用于做缓存的数据是不经常做改变的数据。核心思想见下图:

redis

使用缓存机制,可以加快我们数据的访问。因为数据是暂存在内存中,直接访问内存的数据可以减少在访问数据库过程中的I/O操作,这样便可以提升系统的性能,查询速度。但是作为缓存也有一定的缺点:数据因为是暂存在内存上的,一旦redis服务端关闭,再次开启时,缓存数据将不复存在。因此在某些场合中,我们需要对redis缓存数据做持久化操作,将其持久化到硬盘上,当再次查询时,可将数据读取到缓存中。

从以上我们看出redis使用时的两点注意事项:

  1. 数据不会经常改变。如果,数据持续改变,就不断的访问数据库,再将数据放入到缓存中。
  2. 确定持久化操作的条件。不能随时随地的进行持久化(反而增加了IO操作),也不能对缓存中大量改变的数据不做持久化数据(会导致数据大量的丢失)。

本文借鉴廖雪峰老师博客而整理的git相关总结,以方便自己查阅使用。

1.Git用户设定及其配置

1.Git配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
  • 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

最近又捡起了对Java的学习,通过对一个实例的介绍,总结下此次对Web开发中MVC三层架构的学习,以便用于日后的复习。

一、 MVC

简单的先介绍下MVC模式:

  • M(Model):JavaBean。用于完成具体的业务操作。

    JavaBeanJava中特殊的类.

    JavaBean满足条件:

    • public修饰的类,并提供public无参构造方法
    • 所有的属性都是private修饰
    • 提供gettersetter方法

    使用层面:

    • 封装业务逻辑:dao层封装对数据库的底层操作
    • 封装数据:domain层。对数据库中所要查询对象的封装
  • V(View):视图。用于数据的展示。

    • 页面的展示
    • 与用户的交互
  • C(Controller):控制器。由Servlet实现控制器。

    主要功能:

    • 获取用户的输入
    • 调用模型,将请求交给模型进行处理
    • 将数据交给视图进行展示

一、设置镜像源

conda
1
2
3
4
// 以清华镜像为例
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

此时在当前用户的根目录下生成一个名为”.condarc”的配置文件,打开该文件。

将”.condarc”配置文件内容修改如下,此外可以添加更多的下载渠道。

1
2
3
4
5
6
7
8
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r

在上一节中的泰坦尼克号入门案例的数据预处理过程中,出现了数据不完整、数据的编码(数值转化),即将非结构化文本转化为结构化文本。本文主要用来记录在sklearn中常用的数据预处理基本方法。

数据预处理

从数据中检测,纠正或删除损坏,不准确或不适用于模型的记录的过程。

可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断。也可能,数据的质量不行,有噪声,有异常,有缺失,数据出错,量纲不一,有重复,数据是偏态,数据量太大或太小。

目的:让数据适应模型,匹配模型的需求。

一、Requests库的7个主要方法

方法 说明
requests.request() 构造一个请求,支撑一下各方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.pathch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE
1.requests.get

r = requests.get(url)

  • 返回一个包含服务器资源的Response对象包含爬虫返回的全部内容(内容被封装,返回的是地址信息)
  • 构造一个向服务器请求资源的Request对象

requests.get(url,params=None,**kwargs)

  • url:拟获取网页的url链接
  • params:url中的额外参数,字典或字节流格式,可选
  • **kwargs:12个控制访问的参数

本文用于记录机器学习中的一次入门练习,即:利用决策树进行简单的二分类。同时,结合Kaggle上的经典案例Titanic,来测试实际效果。

一、数据集

采用Kaggle中的Titanic的数据集。数据包含分为:

  • 训练集: training set (train.csv)
  • 测试集: test set (test.csv)
  • 提交标准: gender_submission.csv

由于Kaggle涉及到科学上网的操作,所以原始数据集已经下载好放在Gighub上了。

二、数据处理

首先导入训练集,查看数据的情况:

1
2
3
4
5
6
7
8
9
from sklearn.tree import DecisionTreeClassifier # 导入模型决策树分类器
from sklearn.model_selection import cross_val_score,train_test_split,GridSearchCV # 导入的模型作用分别为交叉验证、训练集与数据集的划分,网格搜索
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv('/Users/liz/code/jupyter-notebook/sklearn/1- DecisionTree/Titanic_train.csv') # 导入数据集
data.head() # 显示数据集的前五行
[out]:

由于自己的阿里云账号申请不足6个月,能够享受新用户云服务器ECS89元一年的优惠政策,所以就购买了一台云服务器,作为日常学习的使用。本文用来记录此次装载云服务器所遇到的一些问题及MySQL的安装过程。

一、云服务器的选配及配置

此次我选购的服务器网址:http://aliyun.langsan.com/?bd_vid=8575091722087683835。下图为此次所购的云服务器配置: 服务器配置