一则或许对你有用的小广告
最近,小哈正在带小伙伴们做前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.2 + Vite 4
,手把手,前端 + 后端,全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已进入第七章 《文章分类模块开发》中,截止到目前,已更新 105150 字,69 篇内容,讲解图:521 张,还在持续爆肝中,后续还会上新更多项目,已有 200+ 小伙伴加入,欢迎点击围观。
我正在尝试使用 Scrapy 从商业网站上进行抓取。对于价格标签,我想删除“$”,但我当前的代码不起作用。
def parse ( self, response ):
for sel in response.xpath( '//section[@class="items-box"]' ):
item = ShopItem()
item[ 'name' ] = sel.xpath( 'a/div/h3/text()' ).extract()
item[ 'price' ] = sel.xpath( 'a/div/div/div[1]/text()' ).extract().replace( "$" , "" )
yield item
AttributeError: 'list' object has no attribute 'replace'
使用 Scrapy 时删除字符的合适方法是什么?
大家好,我是小哈~
本小节中给大家讲下 Flask 中如何快速配置 400、500 错误页面。
Flask 配置 404、500 错误页面
前言
一个 Web 应用中,经常会出现在某个资源由于某种原因被编辑删除,或者 Web 应用内部出现错误的情况,这时,当用户访问时,我们需要给予一个页面反馈,不然用户就会觉得莫名其妙。
配置 404 页面
当用户访问一个不存在、或者已经被删除的页面时,需要响应浏览器 404 错误码,并向用户展示该资源已经丢失页面。
首先,需要在 templates
模板文件夹下创建 404
页面,小哈这里创建了一个简单的 404
页面用作演示。
实际的 Web 应用中,通常是一个样式很好看的 404
页面,可以添加一些炫酷的动画啥的。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>404:该页面找不到啦!</h1>
</body>
</html>
然后,在 Flask 应用中创建一个用于展示 404
错误页面的视图函数,并为其添加 @app.errorhandler(404)
装饰器,返回值是我们刚刚创建的 404.html
页面,以及 404
错误码:
@app.errorhandler(404)
def show_404_page(e):
return render_template('404.html'), 404
配置成功后,重启 Flask 应用,当访问不存在的 URL 时,就会成功看到该 404
页面啦,比如访问一个不存在的 /quanxiaoha
路由:
Flask 配置 404 错误页面
配置 500 页面
500
错误页面的展示一般出现在 Web 应用内部出现了某个错误,配置方式和 404
差不多,同样的,先在 templates
模板文件夹下创建一个 500.html
页面用于展示。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>500:发生了内部错误!</h1>
</body>
</html>
然后,在 Flask 应用中创建一个用于展示 500
错误页面的视图函数:
@app.errorhandler(500)
def show_500_page(e):
return render_template('500.html'), 500
为了验证 500.html
错误页面能够被成功展示,小哈这里定义了一个会导致异常的视图函数:
@app.route('/index')
def index():
# 这行代码执行后,会提示分母不能为零的错误
i = 4 / 0
return render_template('index.html', name='犬小哈教程')
然后,我们访问 /index
URL, 会看到成功展示了 500.html
错误页面:
Flask 配置 500 错误页面
同时,在 Flask 控制台中确实看到了异常堆栈信息:
ZeroDivisionError: division by zero
说明 Flask 内部捕获了异常,并执行了展示 500
错误页面的视图函数。