效果展示
数据类型:
- 新闻数据 hash
- 新闻id String
- 分页数据 List
- 排序 Sorted set
实现功能关键代码
新闻的新增
# 新增新闻数据 def add_news(self, news_obj): # 获取新闻id,自增 int_id = self.r.incr('news_id') # 拼接新闻数据hash key(news:2) news_id = self._news_id() # 存储新闻数据(hash) rest = self.r.hmset(news_id, news_obj) # 存储新闻的id(list) self.r.lpush(self._news_list_name(), int_id) # 存储新闻的类别-新闻id(set) news_type = self._news_type(news_obj)['news_type'] self.r.sadd(news_type, int_id) return rest新增事务支持
'''新增新闻数据(事务支持)''' def add_news_width_trans(self, news_obj): '''新增新闻+事务支持''' '''直接通过管道pipe获取,而不是通过连接获取''' try: # 事务 pipe = self.r.pipeline() # 获取新闻id,自增,这里id只能 从连接获取,而不能从缓存获取 int_id = self.r.incr('news_id') # 拼接新闻数据hash key(news:2) news_id = 'news:%d' % int_id # 存储新闻数据(hash) rest = pipe.hmset(news_id, news_obj) # 存储新闻的id(list) pipe.lpush('news', int_id) # 存储新闻的类别-新闻id(set) news_type = 'news_type:%s' % news_obj['news_type'] pipe.sadd(news_type, int_id) # 事务执行返回结果给rest rest = pipe.execute() except: pass return rest新闻前台首页
def get_all_news(self): '''获取所有新闻数据''' # 取所有的新闻的id,从列表中去news id_list = self.r.lrange(self._news_list_name(), 0, -1) news_list = [] #循环id列表,获取新闻数据hash for int_id in id_list: # 新闻的key news_id = self._news_id(int_id) data = self.r.hgetall(news_id) data['id'] = int_id news_list.append(data) return news_list分类页
def get_news_from_cat(self, news_type): '''根据新闻的类别来获取新闻数据''' news_list = [] # 获取新闻类别key news_type = self._news_type(news_type) # 查询该类别所有新闻id id_list = self.r.smembers(news_type) # 通过循环来查询所有新闻数据 for int_id in id_list: news_id = self._news_id(int_id) data = self.r.hgetall(news_id) data['id'] = int_id news_list.append(data) return news_list详情页
def get_news_from_id(self, int_id): '''根据新闻的id来获取新闻数据''' # 获取新闻key news_id = self._news_id(int_id) # 查询新闻数据hash data = self.r.hgetall(news_id) data['id'] = int_id return data后台首页及分页
def paginage(self, page=1,per_page=10): '''分页数据''' if page is None: page = 1 news_list = [] # 计算开始和结束标记 start = (page - 1) * per_page end = page * per_page - 1 # 获取当页的id id_list = self.r.lrange(self._news_list_name(), start, end) # 通过循环来查询数据 for int_id in id_list: news_id = self._news_id(int_id) data = self.r.hgetall(news_id) data['id'] = int_id news_list.append(data) return Paginate(news_list, page, per_page)新闻修改和删除
相关推荐
STM32_WS2811驱动
STM32的WS2811驱动
《Redis操作Python系列、开发环境与包下载测试|优快云创作打卡》
开发环境:【Win10】、【Redis3.2.100】 开发工具:【PyCharm Community Edition 2021.3.1】 导读: 本章节我们将为大家介绍 Python 如何操作 redis,redis 是一个 Key-Value 数据库,Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型。 Redis服务需要保持在开启状态。 通过pip下载Redis需求包 pip install redis .
线性代数学习笔记(十)——矩阵运算(二)
本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。
Python操作Redis有哪些最佳实践?
在DocArray中使用Redis后端,基于向量相似性搜索可以快速搭建一个实时商品推荐系统。现在,跟上我们的脚步,一起了解搭建系统的关键步骤,并且深入了解推荐的原理吧!推荐系统会根据用户画像、历史行为(如购买、喜欢、浏览等),给用户的兴趣建模,主动提供个性化推荐。它可以提升转化率并保持用户忠诚度,因而被广泛应用在各类电子商务网站。图片来自:https://www.mdpi.com/2076-3417/10/16/5510/htm过去,构建并部署推荐系统通常是一个非常复杂的任务。但现在,
【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)
本文来自社区投稿与征集,作者王玉成,ML&IoT Google Developers Expert,温州大学智能锁具研究院总工程师。 了解更多:https://blog.csdn.net/wfing 经过前面几章的讨论,我们了解了TinyML 的概念,完成了一个最简单的TinyML 的模型并且运行在微控制器上,得出最基本的结果。但是在实际的工程应用中,模型建立之后,也需要再进一步结合许多优化方面的技术,这就是我们接下来想要探讨的。 5. 优化 TinyML 这本书也详细的向我...
【LDLTS解析】从重叠峰到精准参数:拉普拉斯深能级瞬态光谱如何重塑半导体缺陷分析
本文深入解析了拉普拉斯深能级瞬态光谱(LDLTS)技术如何革新半导体缺陷分析。针对传统DLTS难以分辨重叠峰的痛点,LDLTS通过拉普拉斯逆变换对高精度电容瞬态曲线进行数学解卷积,成功分离发射率相近的缺陷信号,实现从模糊宽峰到精准独立峰的转变。该技术不仅大幅提升了缺陷激活能和捕获截面等关键参数的提取精度,更推动分析范式从经验拟合转向第一性原理,为先进半导体工艺开发与良率提升提供了强大的精准诊断工具。
redis的连接与使用
** 一、python连接redis ** 在python中,要操作redis,目前主要是通过一个python-redis模块来实现 1、在python中安装redis模块 pip3 install redis 2、在python中使用redis python连接redis数据库: #!/usr/bin/env python # -*- coding:utf8 -*- import r...
地平线RDKX3初始配置与USB无线网卡
地平线X3无线网卡配置
Python开发运维:Celery连接Redis
Celery是一个强大的 分布式任务队列的异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。通常使用它来实现异步任务(async task)和定时任务(crontab)。Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。Celery是一个基于python开发的分布式系统,它是简单、灵活且可靠的,处理大量消息,专注于实时处理的异步任务队列,同时也支持任务调度。
嵌入式学习之QT学习---14 QT跨平台运行之把QT程序交叉编译到ARM开发板
想要把qt工程放到开发板上运行,就需要用到交叉编译。由于qt是跨平台的,所以只需要换个编译器编译一下就可以。 以“定时器”的例子为例,在移植之前还需要进行一个准备工作,在windows下运行的时候,电脑屏幕很大,但是运行的窗口只有一点点大,开发板也有外接屏幕,如何让运行窗口自动适配开发板的外接屏幕呢?令其占满屏幕显示,而不是一小块。 第一步:需要设置一下,先给ui布局,如果不布局,控件就不会随着屏幕的大小的变化而变化。 第二步:利用代码来获取屏幕的大小,给widget.cpp文件下添加如下代码 #inclu
VTsystem背景检查函数Value Valid
Value Valid是个非常实用的函数,如何让它灵活的为我们所用,便是本文的内容。
《Redis实战》源码项目使用教程
《Redis实战》源码项目使用教程 1. 项目目录结构及介绍 本项目是《Redis实战》一书的中文注释源码,目录结构如下: riacn-code/ ├── LICENSE.txt # 项目许可证文件 ├── README.rst # 项目说明文件 ├── ria-cover.png # 项目封面图片 ├── ch01_listing_sour...
国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案
国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果
实战|教你用Python玩转Redis
大家好,我是辰哥。之前辰哥已经给大家教了Python如何去连接Mysql(实战|教你用Python玩转Mysql),并进行相应操作(插、查、改、删)。除了Mysql外,Python最常搭配...
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
redis_03 Python-Redis
Python-Redis 一、安装模块 在虚拟环境中安装以下几个模块 pip install redis #安装redis模块 pip install redis-py-cluster #支持python安装集群 pip install django-redis #支持django 二、连接Redis 1、连接 from redis import Redis red = Redis(h...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
python中redis的用法_python中redis的安装和使用
《Redis实战》一第1章 初识Redis本节书摘来异步社区《Redis实战》一书中的第1章,第1.1节,作者: 【美】Josiah L. Carlson(约西亚 L.卡尔森)译者: 黄健宏 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。第1章 初识RedisRedis实战本章主要内容Redis与其他软件的相...文章异步社区2017-05-021219浏览量初识Redis及...
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
Python Web实战项目实战
├─1Django基础 │ ├─day1视频 │ │ 01-no-sql--了解.mp4 │ │ 02-redis简介--了解.mp4 │ │ 03-redis的安装和配置--了解.mp4 │ │ 04-redis客户端和服务器指令--了解.mp4 │ │ 06-string操作.mp4 │ │ 07-键操作.mp4 │ │ 08-hash操作.mp4 │ │ 09-列表操作.mp4 │ │ 10...
【Redis教程】与Python交互03
请参考视频:redis教程 目录 3.1redis中常用命令 3.2redis与Python的交互 安装:pip install redis==3.3.5 连接: RtrictRedis对象与python的交互 StrictRedis对象方法 3.3redis的配置文件 3.4主从搭建 3.4.1主从简介 3.4.2主从配置步骤 3.4.2.1主的配置 3.4.2.2从的...
nosql--03Redis数据库与python交互
文章目录Redis与python交互redis保存sessionsettings.pyviews.py Redis与python交互 首先需要导入redis from redis import StrictRedis if __name__ == '__main__': # 创建一个strictrdis对象,用于链接Redis数据库 try: sr=StrictR...
Docling 转换置信度评分(Confidence Scores)权威指南:看懂 QualityGrade、四类分数与质量门槛
本指南以 Docling 官方概念文档 [docs/concepts/confidence_scores.md](https://link.gitcode.com/i/d9efe3d1c0e76f0d9043b4ebcfb088d5) 为核心,结合仓库源码 [docling/datamodel/base_models.py](https://link.gitcode.com/i/a19ba9c88
03_redis_python操作redis
import redis # 封装 class MyRedisList(object): """python操作redis数据的封装""" def __init__(self, db=0, decode=True): # 1. 连接 self.conn = redis.StrictRedis(db=db, decode_responses...
Python爬虫实战--Day03
Python爬虫实战之京东商品信息爬取
python应用之爬虫实战
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。本章详细介绍网络爬虫实战技巧。
Python3 学习系列 丨 博客目录索引
整个博客有关 Python 学习目录索引,方便快捷定位查询 基础学习篇 Python3 基础学习笔记 C01【变量和简单数据类型】 Python3 基础学习笔记 C02【列表】 Python3 基础学习笔记 C03【操作列表】 Python3 基础学习笔记 C04【if 语句】 Python3 基础学习笔记 C05【字典】 Python3 基础学习笔记 C06【用...
Redis AI 资源项目常见问题解决方案
Redis AI 资源项目常见问题解决方案 基础介绍 Redis AI 资源项目是一个开源项目,旨在提供一个关于Redis在AI生态系统中应用的综合资源列表,包括代码示例、演示、教程、集成案例等。该项目主要使用Python编程语言,同时也涉及其他技术栈,如Redis数据库、前端技术(如React)以及机器学习框架(如TensorFlow和PyTorch)。 主要编程语言 Python 新手常见...
数据库—03Redis编程
一、Redis数据库简介 1、Redis介绍 NoSQL(NoSQL = Not Only SQL ),意为“不仅仅是SQL”,泛指非关系型的数据库。 NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。Redis就是一种非关系型数据库。 Redis(Remote Dictionary Server)远程字典数据服务的缩写,由意大...
2840



被折叠的 条评论
为什么被折叠?



