我们都知道 select 的基本用法 select <字段名> from <表名> [where <限制条件>],然而 select 语句后面还可以跟很多限制条件。我们这次用 user 表来作为示范,下面是 user 表的结构:

阅读全文 »

Dict

Python 内置了字典 Dict(全称 Dictionary),使用键 - 值(key-value)存储,具有极快的查找速度。Dict 的查找原理和查字典类似,key 就相当于字典的索引,Python 可以通过 key 计算出所对应的 value 存放的内存地址,直接取出,所以查找速度快。
Dict 的初始化很简单,语法如下:

>>> dict = {key1' : value1, 'key2' = value2, 'key3' = value3}
>>> dict['key2']
value2

一个 key 只能对应一个 value,所以当我们对一个 key 多次赋值时会将前一个 value 覆盖掉。由于需要查找的 key 不存在时,dict 会报错,为了避免 key 不存在的情况,Python 提供了两种方法:

  • 通过 in 判断,如果 key 存在,就返回 True,反之返回 False
>>> `key` in dict
  • 通过 get 判断,如果 key 不存在就返回 None(返回 None 的时候交互式命令行不显示结果),也可以是自己指定返回的内容:
>>> dict.get('key')     #返回None
>>> dict.get('key',-1)      #返回自己指定的值`-1`

删除 Dict 可以使用 dict.pop(key) 方法,对应的 value 也会从 dict 中删除。
Dict 内部的存放顺序和 key 的放入没有关系,Dict 的查找和插入速度不会随着 key 的增加而变慢,需要占用大量的内存,是一种用空间来换取时间的方法。

Set

Set 和 Dict 类似,也是一组 key 的集合,但是不存储 value。由于 key 不能重复,所以在 set 中没有重复的 key。要创建一个 set 需要提供一个 list 作为输入的集合:

>>> s = set([1,2,3,4,5])

重复的元素会被 set 自动过滤,可以通过 add(key) 方法向 set 添加元素,通过 remove(key) 方法删除元素。我们可以将 set 看作数学意义上的集合,因此,两个 set 之间可以做数学意义上的交 (&)、并 (|) 集等运算

最近在自学 Python,所以一边学也一边总结一些知识点

Python 的输出

Python 的输出和 C 语言类似,在 print() 函数里加上字符串(用单引号或者双引号,但是不能混用),例如:

>>> print('Hello world!')

print() 函数也可以接受多个字符串,用逗号隔开即可。print() 函数依次打印字符串,每遇到逗号就会输出一个空格。
print() 也可以打印整数或者计算结果,例如:

阅读全文 »

数据库操作

  1. 创建数据库: CREATE DATABASE <数据库名> [其他选项]
  2. 使用数据库: USE <数据库名>
  3. 修改数据库: ALTER DATABASE <数据库名>
  4. 删除数据库: DROP DATABASE <数据库名>

数据表操作

  1. 创建表:
CREATE TABLE <表名>
(
     <列名1><数据类型>[<列级完整性约束>],
    [<列名n><数据类型>[<列级完整性约束>]]
 );
例:
    create table studets
    (
        id int not null auto_increment primary key,
        name varchar(8) not null,
        sex varchar(5) not null,
        score int(5) not null
    )
  1. 修改基本表
ALTER TABLE <表名> add <列名> <列数据类型> [after 插入位置];         --增加列
ALTER TABLE <表名> change <列名> <列新名> <新数据类型>;              --修改列
ALTER TABLE <表名> drop <列名>;                         --删除列
ALTER TABLE <表名> rename <新表名>;                     --重命名表
DROP TABLE <表名>                                       --删除表
  1. 表的基本操作
  • 插入数据:insert [into] <表名> [(列名1,列名2,列名3……)] values (值1,值2,值3……);
  • 更新数据:update <表名> set 列名=新值 where 更新条件;
  • 删除数据:delete from <表名> where 删除条件;
  • 查询数据:select <列名> from <表名> [查询条件];
  • 特定条件查询:where 不仅支持 “where 列名 = 值” 这种名等于值的查询形式,对一般的比较运算的运算符都是支持的,如 =、<、>、!= 等以及一些扩展运算符 is [not] null、in、like 等,还可以对查询条件使用 or 和 and 进行组合查询。

互联网协议族(Internet Protocol Suite,缩写 IPS)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为 TCP/IP 协议族(TCP/IP Protocol Suite,或 TCP/IP Protocols),简称 TCP/IP 协议集。因为该协议家族的两个核心协议:TCP(传输控制协议)和 IP(网际协议),为该家族中最早通过的标准。由于在网络通讯协议普遍采用分层的结构,当多个层次的协议共同工作时,类似计算机科学中的堆栈,因此又被称为 TCP/IP 协议栈(TCP/IP Protocol Stack)

阅读全文 »

将七牛的插件配置好后我写了上一篇博客试一试效果,结果发现怎么也没部署到 github,每次 hexo d 都会出现

ERROR Deployer not found: git

这样的报错,Google 了半天都没有找到解决的办法,最后在找到了 Github 上的一条 issue,终于发现了解决办法:只要将配置文件_config.yml 中 plugins 的那段给注释掉就 OK 了,即

#plugins:
#- hexo-qiniu-sync

还是希望开发者能早点修改文档吧,不然还真的挺容易出事,不过说一句,我的 Hexo 是 3.2.2 的版本的,不知道 2.x 版本会不会出现类似的情况

今天把博客的图片存储搞了一下,利用的七牛存储,相对来说还是比较简单,但是为了测试成功与否就只好写这篇博客了。
七牛 是一个云存储服务商,注册并实名认证之后后,你将免费享有 10GB 存储空间,每月 10GB 下载流量、100 万次 GET 请求、 10 万次 PUT/DELETE 请求。如果想要注册可以点击这里,这样可以为我增加每月 5GB 的容量。

阅读全文 »

今天把 Ubuntu 从 16.04 更新到 16.10 之后卸载了些软件,之后蛋疼的发现系统设置打不开了,真是欲哭无泪。去网上搜了下发现是我之前由于卸载了 iBus 导致的,虽然我不懂为什么 iBus 和 Ubuntu 之间的关系为什么会如此紧密,但是既然发生了这种事情我也很绝望啊,只能按照网上的方法

sudo apt-get install ubuntu-desktop         #这个会把Ubuntu预装的软件office还有Amazon什么的装回来,装完自己再慢慢卸载吧

或者他也提供了一次性的安装办法

sudo apt-get install ibus-pinyin unity-control-center unity-control-center-signon webaccounts-extension-common xul-ext-webaccounts

但是我眉头一皱,发现事情并不简单,我继续搜了下去,也有很多人遇到这种问题,发现还有更简单的办法

sudo apt-get install gnome-control-center           #如果系统设置打不开,请重新安装gnome-control-center
sudo apt-get install unity-control-center           #如果设置里只有很少的几个图标请重新安装unity-control-center

当然上面两个方法并没有尝试过,我也无从得知导致我系统设置打不开的原因是不是卸载了 iBus

这几天觉得 wordpress 作为博客实在是太臃肿了,而且访问的后台以及更新都极其的慢,以至于想把博客迁到 Hexo 上去。
Hexo 是个简洁快速且高效的博客框架,是个台湾的学生写的,所以对中文还是挺友好的,我们用起来也很方便,而且 Hexo 仅依赖 node,易于安装。
首先准备的工具仅需要 node.js,git 即可,在 ubuntu 上安装这两样工具也是极其简单:

阅读全文 »

最近由于听信了别人的 “谗言”,心血来潮想试一试 Arch,所以便准备在虚拟机上装一个 Arch 来看看效果,也算是一次艰难的装系统之路了吧。

那么下面打开虚拟机,进入安装界面:

首先是分区,Arch 给我们提供了一个很好的分区交互工具 cfdisk

cfdisk        #使用cfdisk进行分区
阅读全文 »

笔者前段时间安装了 sqli-labs,就想把 sqli-labs 和 lamp 环境的搭建都写出来,其实这两个东西都很简单,感觉比我折腾 hexo 要简单的得多了(手动滑稽)。

sqli 即 sql injection (sql 注入),sqli-labs 是一个印度程序员写的用来学习 sql 注入的游戏教程,Youtube 上有一套视频教程 (需要科学上网),github 上也有开源的项目

那么接下来就可以进行安装了:

阅读全文 »

最近笔者在 “温习 TP 框架”(其实就是不会然后抓紧时间啃),从最简单 Blog 开始做起,以前学习的时候是跟着教程,用 time () 函数获取当前时间戳,然后用 int 型数据来存储。这一次我突然想用 Mysql 内置的时间类型的数据 ——timestamp。

阅读全文 »
0%