Python Web框架

本篇文章主要介绍Redis的基本知识 五种数据结构(增删改查命令)+Python如何连接Redis

PythonWeb框架

Web应用程序处理流程:
前端客服端(浏览器、App、ajax、爬虫程序)发送HTTP请求向服务器发送请求 后台服务器

(Flask、Djiango) 由中间层处理 具体视图处理(数据库、模板、表单) 中间层处理

HTTP响应对象通过服务器向前端克服端发送HTTP响应。

首先学习一个新的玩意:

Redis是一个高性能key-value数据库

为什么选择redis来存储加载Web、网页中所需要的数据:例如验证码(时间过了,自动销毁)

redis是一种高性能的数据库 存储格式采用:键值对。

nosql:不仅仅只有sql 与传统的mysql关系型数据库不同。

一句话:Radis反正很牛逼

Redis的性能高、读写快速、原子性、丰富支持。

bind 本地ip127.0.0.1

port 6379

服务器指令:

切换Redis数据库 select (0~15) 默认16个数据库!!!
redis -cli 客服端连接服务器

select 0

select 10 切换服务器 默认有16个服务器

数据结构:
redis是key-value的数据结构,每条数据都是一个键值对

键的类型是字符串(不可变数据类型)

注意:键不能重复

Redis(非关系数据库nosql)中的五种数据类型:

  • 字符串
  • 列表
  • 哈希(字典)
  • 集合(默认无序)
  • 有序集合 

先来看看常见的命令(针对五种数据类型的{增删改查}方法):(redis默认16个数据库 0~15 )

字符串(String):

增:set key value

删:del key[keys...]

改:set key value(新的value)

查:get key (返回对应的value) 

注意:可以设置定时的字符串 应用网页中验证码(过期会自动刷新)

mset key1 value1 key2 value2 ... mget key1 key2... 一次增删多个字符串。

命令:(设置)setex value seconds value(查询)ttl key  查看过期时间    区别:永久的字符串是-1

补充:常见的键命令

查看所有的键(keys *)

查看含有a的键(key a*)

判断键是否存在:存在返回1  不存在返回0  

设置键的过期时间:exprire key seconds

查看有效时间:ttl key 

哈希表(hash): 用于存储对象 对象的结构为属性、值类型为string   下面的参数低于键(后面跟两个属性) 一个键后面可以跟多个属性   hset 键(参数) (属性、属性)(属性、属性)...

增:hset 参数 key value

删:hdel 参数 (key)。。。

改:hset 参数 新的值和键

查:hget 参数   查看属性

查看所有键:hkeys 参数      

查看所有值:hvals 参数

一个参数下可以对应多个属性(键值对)

hmget key /hmset 多次增查       

列表(list):

分为lpush 和 rpush 类似于 Python中的双向队列     (apppendleft/popleft--pop/append)

增:lpush key value

删:lrem key 从左边开始删 /rrem key从右边开始删

改:重新写增加语句   lpush key value

查:lrange key 下标(类似于切片 0:-1)

集合(set默认是无序集合) :  集合两大特性:去重+无序

增:sadd key value

删:srem key

改:直接srem删除后+重新添加

查:smembers key

有序集合(sorted set):元素为string类型  每个类型关联一个double类型的score权重 按权重排序

增:zadd key score1 member1 score2 member2... 集合中的成员对应字符串/列表  (购物车使用redis来存储) score为时间戳 (现在到1970年1月1日00:00:00)累计的秒数。

删:zrem key......

改:删除+重新增加

查:zrange key 0 -1  类似于(列表)从小到大排序

可以看到这五种的增删改查的命令并不难写,孰能生巧。

Redis的优势:

性能极高。读写速度快;

丰富的数据类型:String List Hash sorted set set

原子:Redis的所有操作的欧式不可再分的。

丰富的特性:redis支持publish/subscribe 通知、过期(setex key 秒数 value)等特性。

Redis应用场景:

用来做缓存 redis存储在内存中;

可以在某些特定场景下替代传统的数据库-例如社交应用

有一些大型的系统中,巧妙地实现了一些特定的功能:session共享、购物车

只要想象力足够丰富、Redis就会给我们带来奇思妙想。

Python连接Redis:

利用强大的第三方库,模拟客服端连接Redis的服务器。

  1. 导入模块
  2. 递交信息(host/port/db)
  3. 写适合redis的sql语句

对比一下:Python连接mysql

创建连接conn() 递交数据(host/db/password/port/charset/user)六个属性

再利用连接创建一个游标对象 写sql 语句 利用创建的游标对象查询结果

增删改操作需要使用异常处理:try(游标对象执行sql语句、连接递交) except(数据回滚、关闭连接)谨防数据丢失!!! 

 

 Redis和Mysql的区别:
递交的信息不一样:

Redis:host port db

Mysql:host user password port db charset='utf8'

语句的执行方式不一样:

Redis执行sql语句:直接利用连接.对应的函数名控制

Mysql执行sql语句:根据连接创建游标对象,sql语句由游标对象一手执行。

(知识之间是相通的、比较学习能让我们学的更好!!!)

以上就是PythonWeb开发框架(Djiango)的基础部分,谢谢大家的阅读!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值