首页
学习
活动
专区
圈层
工具
发布

开启 Django 博客的 RSS 功能

现在我们就来为博客添加 RSS 订阅功能。 RSS 简介 RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,它采用 XML 作为内容传递的格式。...例如一个读者可能关注了很多的博客网站,如果这些博客网站都支持 RSS 订阅的话,他就只需要一个聚合阅读器订阅这些博客,就可以在聚合器工具里看到全部博客的更新内容,而不必再分别访问各个博客去看有没有内容更新了...但要注意的是我们使用了 django 提供的 cached_property 装饰器,这个装饰器和 Python 内置的 property 装饰器功能一样,可以将方法转为属性,这样就能够以属性访问的方式获取方法返回的值...为了更方便地获取文章的 HTML 格式的内容和目录,我们进一步将 generate_rich_content 返回的值放到 toc 和 body_html 两个属性中,这里两个属性都从 rich_content...RSS 测试插件 可以在本地测试一下订阅效果,我使用的 Chrome 浏览器,安装了一个 RSS Feed Reader的应用,如果你也使用的 Chrome 浏览器,可以从应用商店添加它,然后就可以在本地测试订阅效果了

68110

python的这些小知识你注意到了吗?

还需要注意一点,在 3.3 版本以后,曾经的 IOError 被别名为 OSError。...这句话可能比较难理解,我们先来回顾一下什么是装饰器?装饰器就是在不改变现有函数基础上,为函数增加功能的一个函数,它使用闭包来实现。...闭包的规则为在函数内部定义了一个函数,内部函数使用了外部函数的变量,外部函数返回了内部函数的引用。有一点需要注意:虽然被装饰器装饰的函数仍然可以使用原名称调用,但是其实质上指向了装饰器的内函数。...__name__) """结果是:我是装饰器啊...我是示例函数噻...noname""" 可以看到 __name__ 属性的值被修改为函数 noname 自己。 也许大家会问这有什么用?...很久很久以前,在一个 Flask 项目中曾经出现过一个 bug :给视图函数添加了自定义的装饰器之后(该装饰器会验证用户是否登录),再用 @app.route("/index") 绑定路径,会报错「你添加路径的视图函数已经绑定了其他路径

43310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python “函数” ——Python面试100道实战题目练习,巩固知识、检查技术、成功就业

    在参数名之后、等号之前添加类型 C. 在函数定义结束后,使用特殊的注释语法 D. 使用typing模块中的类型别名 30. 下列哪个是Python中装饰器(Decorator)的典型用途?...装饰器可以改变函数的名称、文档字符串等属性。 31. 在Python中,所有函数都是对象。 32. 函数可以拥有属性,就像其他对象一样。 33....嵌套函数中的外部函数必须先被调用,内部函数才能被调用。 40. 装饰器本质上是一个函数,但它返回一个函数对象,而不是执行被装饰的函数。 41....解析:装饰器是Python中的一个高级特性,它允许你在不修改原有函数代码的情况下,给函数添加新的功能。装饰器本质上是一个函数,它接受一个函数作为参数并返回一个新的函数。 15. 错误。...通常,装饰器会保留原始函数的这些属性,或者使用functools.wraps等工具来自动处理这些属性的复制。 31. 正确。

    98910

    AngularDart4.0 高级-属性(Attribute)指令 顶

    两个例子是NgFor和NgIf。 在“结构指令”页面中了解它们。 属性指令被用作元素的属性。 例如,“模板语法”页面中的内置NgStyle指令可以同时更改多个元素样式。...添加两个事件处理程序,当鼠标进入或离开时进行响应,每个都由HostListener注解装饰。...当然,你可以用标准的JavaScript访问DOM,并手动添加事件监听器。 这种方法至少有三个问题: 你必须正确的写下监听器。 当指令被销毁时,代码必须分离监听器以避免内存泄漏。...您正在重新使用该指令的属性选择器([myHighlight])来执行这两个任务。 这是一个清晰,紧凑的语法。...myHighlight这个词是一个可怕的财产名称,它并不表达财产的意图。 绑定到@Input别名 幸运的是,您可以根据需要命名指令属性,并将其别名用于绑定目的。

    4K10

    Python 全栈 191 问(附答案)

    __getitem__用过吗? callable对象怎么实现的? 还在觉得yield可有可无吗? 还觉得装饰器与你没有毛关系吗?...说说你知道的创建字典的几种方法? 字典视图是什么? 所有对象都能作为字典的键吗? 集合内的元素可以为任意类型吗? 什么是可哈希类型?举几个例子 求集合的并集、差集、交集、子集的方法?...range(1,10,3) 返回一个什么样的迭代器? zip 函数能实现功能? 如何动态地删除类上的某个属性? 又如何判断类上是否有某个属性?...lambda 函数的形参和返回值使用案例 多用 NamedTuple ,让代码更可读 Counter 计数的功能非常好用 使用 DefaultDict 自动创建一个被初始化的字典 使用装饰器太魔幻,始终不知道怎么使用...装饰器都用在哪里,可否举几个例子? wraps 装饰器确保函数被装饰后名称不改变 写个装饰器统计出某个异常重复出现到指定次数时,历经的时长。

    5.2K20

    细数这些年被困扰过的 TS 问题

    它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。...四、如何理解装饰器的作用 在 TypeScript 中装饰器分为类装饰器、属性装饰器、方法装饰器和参数装饰器四大类。装饰器的本质是一个函数,通过装饰器我们可以方便地定义与对象相关的元数据。...它接收一个参数 —— target: TFunction,表示被装饰器的类。介绍完上述内容之后,我们来看另一个问题 @Plugin({...}) 中的 @ 符号有什么用?...因为我们希望 add 函数同时支持 string 和 number 类型,因此我们可以定义一个 string | number 联合类型,同时我们为该联合类型取个别名: type Combinable...'semlinker' 和 ' kakuqo' 这两个字符串作为参数调用 add 函数,并把调用结果保存到一个名为 result 的变量上,这时候我们想当然的认为此时 result 的变量的类型为 string

    16K73

    OpenHarmony后代组件双向同步,跨层级传递:@Provide装饰器和@Consume装饰器

    说明:从API version 9开始,这两个装饰器支持在ArkTS卡片中使用。...不允许在同一个自定义组件内,包括其子组件中声明多个同名或者同别名的@Provide装饰的变量,@Provide的属性名或别名需要唯一且确定,如果声明多个同名或者同别名的@Provide装饰的变量,会发生运行时报错...装饰器说明@State的规则同样适用于@Provide,差异为@Provide还作为多层后代的同步源。@Provide变量装饰器说明装饰器参数别名:常量字符串,可选。...被装饰变量的初始值必须指定。@Consume变量装饰器说明装饰器参数别名:常量字符串,可选。...● 当装饰的数据类型为class或者Object的时候,可以观察到赋值和属性赋值的变化(属性为Object.keys(observedObject)返回的所有属性)。

    17510

    HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 三)

    装饰器使用规则说明 @Link变量装饰器 说明 装饰器参数 无 同步类型 双向同步。 父组件中@State, @StorageLink和@Link 和子组件@Link可以建立双向数据同步,反之亦然。...当装饰的数据类型为class或者Object时,可以观察到赋值和属性赋值的变化,即Object.keys(observedObject)返回的所有属性。...被装饰变量的初始值 必须指定。 @Consume变量装饰器 说明 装饰器参数 别名:常量字符串,可选。...@Consume装饰的变量,在其父节点或者祖先节点上,必须有对应的属性和别名的@Provide装饰的变量。 被装饰变量的初始值 无,禁止本地初始化。...当装饰的数据类型为class或者Object的时候,可以观察到赋值和属性赋值的变化(属性为Object.keys(observedObject)返回的所有属性)。

    67730

    SqlAlchemy 2.0 中文文档(十四)

    返回一个KeyFuncDict工厂,它将根据 ORM 映射实例上的特定命名属性的值生成新的字典键,以添加到字典中。 注意 目标属性的值必须在将对象添加到字典集合时被赋予其值。...返回一个 KeyFuncDict 工厂,它将根据 ORM 映射实例上的特定 Column 映射的属性的值产生新的字典键,并将其添加到字典中。 注意 目标属性的值必须在将对象添加到字典集合时被赋值。...返回一个KeyFuncDict工厂,它将根据要添加到字典中的 ORM 映射实例上的特定命名属性的值产生新的字典键。 注意 目标属性的值必须在对象添加到字典集合时被赋值。...为方法添加“从集合中移除”的处理。如果没有被其他装饰器装饰,该方法的返回值(如果有)将被视为要移除的值。...为方法添加“从集合中移除”的处理。如果没有被其他装饰器装饰,该方法的返回值(如果有)将被视为要移除的值。

    1.3K10

    干货 | 30个经典Python面试考问题详解(上)

    关于什么是装饰器,相信有不少读者都表示好奇,装饰器允许通过将现有函数传递给装饰器,从而向现有函数添加一些额外的功能,该装饰器将执行现有函数的功能和添加的额外功能。...比如说我们来编写一个装饰器,该装饰器用来调用另一个函数时记录日志 ? 然后我们编写其他两个函数,并将装饰器添加到到其中, ? 得出的结果如下图所示, ?...而如果我们撤去原先添加上去的装饰器,则输出的结果为 ? 04 Python中的实例方法、静态方法和类方法有什么区别?...可以看得出来,之前的年龄属性是"22",而现在则变成了"25" 05 字典和JSON有什么区别?...在列表中查找一个值需要O(n)时间,因为需要遍历整个列表明直到找到值为止, 在字典中查找一个值只需要O(1)时间,因为它是一个哈希表 所以说如果有很多值时会造成很大的时间差异,建议使用字典来提高速度,但使用字典也有其限制性

    1.1K31

    ArkTS-@Provide装饰器和@Consume装饰器

    其中@Provide装饰的变量是在祖先结点中,可以理解为被”提供“给后代的状态变量。@Consume装饰的变量是在后代组件中,去“消费(绑定)”祖先节点提供的变量。...装饰器说明 @state的规则同样适用于@Provide,差异为@Provide还作为多层后代的同步源 @Provide变量装饰器 说明 装饰器参数 别名:常量字符串,可选如果指定了别名,则通过别名来绑定变量...@Provide变量的@Consume变量的类型必须相同 被装饰变量的初始值 必须指定 @Consume变量装饰器 说明 装饰器参数 别名:常量字符串,可选。...观察变化和行为表现 观察变化 当装饰的数据类型为Boolean,string,number类型时,可以观察到数值的变化 当装饰的数据类型为class或者Object的时候,可以观察到赋值和属性赋值的变化...(属性为Object.keys(observedObject)返回的所有属性) 当装饰的对象是array的时候,可以观察到数组的添加,删除,更新数组单元。

    67810

    作为Python中级程序员,有句话不知当讲不当讲 ( ̄へ ̄)

    这句话里有10个问题 Python中都是对象吗? 字符串是对象。列表对象。函数对象。甚至模块也是对象。任何东西都是一个对象,因为它可以赋值给一个变量或作为参数传递给一个函数。...我们可以使用_closure__来验证函数是否为闭包。 ? 一个函数和它的环境变量合在一起,就构成了一个闭包(closure)。在Python中,所谓的闭包是一个包含有环境变量取值的函数对象。...▍装饰器 装饰器是这样一种设计模式:如果一个类希望添加其他类的一些功能,而不希望通过继承或是直接修改源代码实现,那么可以使用装饰器模式。...如果需要访问函数中的类属性,请使用@classmethod。 如果不需要使用cls对象,则使用@static method。 与其他语言不同,Python中的静态方法可以在子类中重写。 ?...▍单继承 子类将具有基类的所有功能,还可以修改和增强。 子类初始化器希望调用基类初始化器,以使整个对象被初始化。 ?

    1.4K20

    nest.js项目集成websocket服务

    websocket的服务类一般会有一个成员属性和N个方法,成员属性其实就是websocket服务器的实例,而方法都是订阅特定事件的方法,成员对象用@WebSocketServer装饰器修饰,而方法都会用...,第一个参数为websocket服务器监听的端口,第二个参数为设置cors响应头,这样浏览器就不会组织跨越了。...WebSocketServer这个装饰器的作用是使Nest框架自动将服务器实例分配给指定属性。上文将服务器实例分配给了server。...SubscribeMessage装饰器必须传递一个参数,这个参数就是订阅的事件名称,客户端向这个事件发送消息,服务器这里就能订阅到了。...有些同学要问为什么这么麻烦,直接将服务依赖注入到使用的地方不可以吗,答案显示是不可以,配置共享模块视为了在所有模块中共享websocket模块的实例,如果省略这一步,websocket实例就会多次被实例化

    6.5K31

    Python面试必刷题系列(4)

    那你给我讲下Python装饰器吧! Python装饰器啊…. 我没用过哎 以上是一个哥们面试的时候发生的真实对白。...列举说明 本质:仍然是一个 Python 函数,实现由由闭包支撑,装饰器的返回值也是一个函数对象。 作用:让函数在无需修改任何代码的前提下给其增加功能。...实例:实现一个@timer装饰器,记录每个函数的运行时间。...如果想调用指定某个父类中被重写的方法,可以给super()传入两个实参:super(A_type, obj),其中,第一个实参A_type是个类对象,第二个实参obj是个实例对象,这样,被指定的父类是:...(2)减少引用个数的情况:对象的别名被销毁;别名被赋予其他对象;对象离开自己的作用域;对象从容器对象中删除,或者容器对象被销毁。

    83520

    Python 装饰器总结

    装饰器是高阶函数,装饰器是对传入函数的功能增强。 装饰器的副作用:原函数对象的属性都被替换了,而使用了装饰器,查看到的函数对象属性就变成装饰器的函数对象了,如果需要查被装饰的函数的属性?...对用原函数的属性覆盖掉装饰器的属性。 解决方法: 通过copy_properties函数将被包装函数的属性覆盖掉包装函数,凡是被装饰的函数都需要更改函数的属性,可以将复制属性的函数做成装饰器函数。...装饰器分为无参装饰器和带参装饰器。 带参装饰器,是一个函数,函数作为他的形参,返回值是一个不带参的装饰器函数,使用@functionname(参数列表)方式调用,可以看做在装饰器外层又加一层函数。...4:partial 方法 偏函数,报函数部分的参数固定下来,相当于为部分的参数添加了为一个固定的默认值,形成一个新的函数并返回。从partial生成的新函数,是对原函数的封装。...如果typed设置为Ture,则不同类型的函数参数将单独缓存。 lru_cache装饰器应用 1: 使用前提:同样的函数参数一定得到同样的结果,函数执行时间很长,且需要多次执行。

    49330

    前端需要掌握的设计模式

    使用场景: 新创建对象和已有对象无较大差别时,可以使用原型模式来减少创建新对象的成本。 结构型 装饰器模式 讲装饰器模式之前,先聊聊高阶函数。高阶函数就是一个函数就可以接收另一个函数作为参数。...,而 add 相对于 Math.abs 来说相当于一个装饰器,因此这个例子也可以理解为一个简单的装饰器模式。...在 react 中,高阶组件(HOC)也是装饰器模式的一种体现,通常用来不改变原来组件的情况下添加一些属性,达到组件复用的功能。...使用场景: es7 装饰器、vue mixins、core-decorators 等。 适配器模式 适配器别名包装器,其作用是解决两个软件实体间的接口不兼容的问题。...通过“别名”可以知道,观察者模式具备两个角色,即“发布者”和“订阅者”。正如我们工作中的产品经理就是一个“发布者”,而前后端、测试可以理解为“订阅者”。

    51410

    浅谈Angular

    来控制元素的显隐 在自定义指令里获取指令添加到其上面的元素,需要依赖注入ElementRef服务 如果自定义指令想要接收从外部传入的值,需要使用@Input装饰器\....可以给@Input装饰器内部填写一个元数据,这个值是外部使用的名字 内部还是使用原来的名字 3.如果想要给指令添加的元素绑定的事件,需要使用@HostListener装饰器 如果要通过指令控制DOM的显隐...解决,RxJS提供响应式开发(基于观察者模式),我们可以订阅某个值,一旦该值被订阅,如果其存储的数据发生变化,订阅者就会收到通知,进而做出对应的处理 注意点: AngularJS里,并不是所有的值都可以被订阅...,只有Observable类或者Observable的子类创建出的对象可以被订阅 subscribe是Observable类下的一个函数。...从Observable的中文名:”可观察的”就能看出,Observable的作用是可以起到类似监听的作用,但它的监听往往都是在跨页面中, 6.组件间通信: 1.父向子 -- @Input装饰器声明输入属性

    5.8K10

    Django之视图层与模板层

    例如:"GET"、"POST" 应该通过该属性的值来判断请求方法 二.HttpRequest.GET 值为一个类似于字典的QueryDict对象,封装了GET请求的所有参数,可通过HttpRequest.GET.get...该属性值为一个类似于字典的对象,可以包含多组key:value(对应多个上传的文件),其中每个key为<input type="file" name="" /> 中name属性的值,而value则为对应的文件数据...') 装饰你的视图以让响应能够正确地缓存 1.2响应对象(HttpResponse) 响应可以是一张HTML网页、一个404错误,一张图片,一个XML文档、重定向到其他视图等。...:要使用模板的完整名称,必须传入,render默认回去templates目录下查找模板文件 3.context:可选参数,可以传入一个字典用来替代模板文件中的变量 render的功能可总结为:根据给定的字典渲染模板...是我们定义的装饰器名称,这里略去装饰器的定义代码) # @method_decorator(outter,name='post') # @method_decorator(outter,name='dispatch

    10.4K10

    100 个基本 Python 面试问题第四部分(61-80)

    Q-79:Python 中字典理解的语法是什么? Q-80:Python 中生成器表达式的语法是什么? Q-61:如何在运行时为 Class 属性赋值? 我们可以在运行时指定属性的值。...输入一个奇数- 1 输入的值为: 1 输入一个奇数- 回到目录 Q-67:什么是 Python 迭代器? Python 中的迭代器是类似数组的对象,允许在下一个元素上移动。...我们在遍历循环时使用它们,例如在“for”循环中。 Python 库没有。的迭代器。例如,一个列表也是一个迭代器,我们可以在它上面启动一个 for 循环。...Python 装饰器使我们能够动态地向给定对象添加新行为。在下面的示例中,我们编写了一个简单的示例来显示函数执行前后的消息。...我们可以通过使用新键修改字典来添加元素,然后为其设置值。

    3.5K21
    领券