Flask中jsonify和json.dumps用法以及区别(简单案例)

环境:python3.6, Flask1.0.3

flask提供了jsonify函数供用户处理返回的序列化json数据,

而python自带的json库中也有dumps方法可以序列化json对象.

其二者的区别,写个简单的案例实测一下便见分晓。

from flask import Flask
from flask import jsonify
import json

app=Flask(__name__)
app.config['JSON_AS_ASCII'] = False

# 随便定义个json字典
dic={"a":1,"b":2,"c":"你好"}
@app.route('/jsonify')
def jsonifys():
    # Content-Type: application/json
    return jsonify(dic)

@app.route('/jsondumps')
def jsondumps():
    # Content-Type: text/html; charset=utf-8
    return json.dumps(dic,ensure_ascii=False)

if __name__ == '__main__':
    app.run(debug=True)

1.我们先访问 http://127.0.0.1:5000/jsonify 地址查看jsonify返回的json内容为一个JSON格式的字典

{

“a”:1,

“b”:2,

“c”:”你好”

}

检查页面属性看Response内容:其中content-Type:application/json

2.再访问另一个地址 http://127.0.0.1:5000/jsondumps 查看返回的json内容差不多

{“a”:1,”b”:2,”c”:”你好”}

检查页面属性看Response内容:text/html

使用jsonify时响应的Content-Type字段值为application/json,

而使用json.dumps时该字段值为text/html。

ps:

使用jsonify方法是需要添加一句 app.config[‘JSON_AS_ASCII’] = False

而json.dumps方法需要添加参数 ensure_ascii=False

这样做可以避免显示中文乱码。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142355.html原文链接:https://javaforall.cn

宝塔-狂雨小说

bbs.kyxscms.com

PHP建议高一点,实践7.4可用,在PHP设置中安装fileinfo扩展

建好网站后上传源码,伪静态里要选择thinkphp,然后保存,

在数字库操作以下代码,来新建一个采集,然后进后台去采集,但采出来的好像有很多文章并不完整。应该是采集的原站就文章不完整。

INSERT INTO `ky_collect` (`id`, `title`, `charset`, `type`, `url_complete`, `url_reverse`, `pic_local`, `source_url`, `section`, `url_rule`, `url_merge`, `url_must`, `url_ban`, `relation_url`, `rule`, `category_way`, `category_fixed`, `category_equivalents`, `status`, `create_time`, `update_time`, `collect_time`, `update`) VALUES (NULL, 'http://www.shuquge.com/', 'auto', 'novel', '1', '0', '0', '[{"url":"http://www.shuquge.com/category/1_[内容].html","type":"1","param":["1","1227","1",0]},{"url":"http://www.shuquge.com/category/2_[内容].html","type":"1","param":["1","317","1",0]},{"url":"http://www.shuquge.com/category/3_[内容].html","type":"1","param":["1","853","1",0]},{"url":"http://www.shuquge.com/category/4_[内容].html","type":"1","param":["1","230","1",0]},{"url":"http://www.shuquge.com/category/7_[内容].html","type":"1","param":["1","308","1",0]}]', '<body>[内容]</body>', '<li><span class="s1">(*)</span><span class="s2"><a href="[内容1]">(*)</a></span>', '', '', '', '[{"title":"章节页","page":"default","chapter":"1","section":"<dt>(*)正文</dt>[内容]</div>","url_rule":"<dd><a href=\\"[内容1]\\">[章节标题]</a></dd>","url_merge":""}]', '{"category":{"field":"category","source":"default","rule":"<meta property=\\"og:novel:category\\" content=\\"[内容1]\\" \\/> ","merge":"","strip":""},"title":{"field":"title","source":"default","rule":"<meta property=\\"og:novel:book_name\\" content=\\"[内容1]\\" \\/> ","merge":"","strip":"","replace":""},"author":{"field":"author","source":"default","rule":"<meta property=\\"og:novel:author\\" content=\\"[内容1]\\" \\/> ","merge":"","strip":"","replace":""},"serialize":{"field":"serialize","source":"default","rule":"<meta property=\\"og:novel:status\\" content=\\"[内容1]\\" \\/>","merge":"","serial":"连载中","over":"完结","strip":"","replace":""},"pic":{"field":"pic","source":"default","rule":" <meta property=\\"og:image\\" content=\\"[内容1]\\" \\/> ","merge":"","strip":"","replace":""},"content":{"field":"content","source":"default","rule":" <meta property=\\"og:description\\" content=\\" [内容1]\\" \\/> ","merge":"","strip":"","replace":""},"tag":{"field":"tag","source":"default","rule":"<meta property=\\"og:title\\" content=\\"[内容1]\\" \\/> ","merge":"","strip":"","replace":""},"chapter_title":{"field":"chapter_title","source":"0","rule":"<h1>[内容1]<\\/h1>","merge":"","strip":"","replace":""},"chapter_content":{"field":"chapter_content","source":"0","rule":"<div id=\\"content\\" class=\\"showtxt\\">[内容1]<br \\/>","merge":"","strip":"","replace":"[{\\"find\\":\\"<br\\/>\\",\\"replaces\\":\\"\\"}]"}}', '0', '0', '[{"target":"玄幻魔法","local":"18"},{"target":"武侠修真","local":"19"},{"target":"都市言情","local":"21"},{"target":"历史军事","local":"20"},{"target":"科幻灵异","local":"22"}]', '1', '1586771330', '1586774583', '1586793887', '0')

静态网站的免费存放

一、vercel是一个站点托管平台,可以托管静态网页,可以放个hexo博客系统在上面

二、Github Pages是完全基于Github创建的,也就是说你的博客站点实际上就是你的Github账户下的一个特殊的repo。所以,点击“New repository”新建一个仓库。
  而这个repo的特殊之处就是,它的名字必须是“username.github.io”(划重点啦,不要打瞌睡!),其中,username就是你的Github账户的用户名

同类的平台有Netlify等

把自己的域名做为邮箱后缀

新注册了个域名,想要有自己域名后缀的邮箱,

可以先到PC版企业微信注册帐号,进去后点‘邮件’进去,里面有个邮箱域名,设置成自己的域名,

并按要求先到域名注册商把域名设置两个MX记录,一个CNAME记录,验证通过就设置好自己的域名了,

然后在PC版企业微信进 邮件-邮箱管理-业务邮箱 进去后新增一个业务邮箱,并获取到密码,

这时你就可以按提示用foxmail等软件来收发邮件了,

如果不想用软件来收发邮件,则可用以下个人QQ邮箱来管理收发邮件

进自己的个人QQ邮箱-设置-其它邮箱

在里面’添加代收邮箱账户‘,然后填入邮箱地址,和之前获取的密码,

然后就可以在个人的邮箱里代收你自己域名邮箱的邮件了。发邮件时在’发件人‘选项卡中选择自己域名邮箱的这个账号就可以发邮件了

我的自有域名邮箱xtaa@xtaa.cn

windows双网卡路由优先设置

先用route print查一下路由表,如果两个网卡会有两个默认路由,这时跃点数越低的优先级越高,
我们可以在网卡属性中的intinternet协议版本ipv4设置中的高级选项卡中取消自动跃点设置,自己设置跃点数来改变两个路由的优先级。

android平台googleplay环境

最近有很多朋友来咨询我如何下载谷歌验证器。安卓手机下载谷歌验证器需要通过Google Play,而小米、华为等安卓手机因为手机供应商提供的版本不同,会限制,手机无法运行Google应用程序。这篇文章以小米手机为例,教大家如何在安卓手机上运行Google Play。

步骤如下:1、打开应用商店,搜higoplay安装器(如果要收费用后面的),如果没有则

搜索“豌豆荚”,下载“豌豆荚”App

在豌豆荚APP中搜索“谷歌安装器”,找到“SU谷歌安装器”(也可能更名为SuPlay安装器),或者到极光下载站等百度网站搜索也可以下,点击下载-安装

分别下载和安装对应的谷歌服务:谷歌服务框架、谷歌play服务、谷歌商店5、安装完成,登陆您的Google账户,即可使用Google Play功能。

chatGPT的使用。

1、如何提问很重要,就像你AI绘画写关键词的语法一样,人家说需要苏格拉底式的提问,提问是有逻辑递进顺序的,还可以在问题前提示,如这样提问:

the content is practical, operable, not exaggerated

The question is: Some people want to ask me for help, but theywon’t pay me

2、建立知识库来帮助chatgpt理解解决问题

利用ChatGPT提供技术支持可以帮助你更快速、更高效地解决客户的问题。建一个知识库可以更好的帮助你利用ChatGPT提供技术支持:
建立知识库:首先,你需要建立一个技术支持的知识库,其中包括常见问题和解决方案。
这可以帮助ChatGPT更好地理解问题,并提供准确的答案。你可以使用一些知识管理工
具,例如知识库软件、FAQ文档等来构建知识库。
利用ChatGPT提供答案:当客户向你提出问题时,你可以利用ChatGPT提供答案。你可以
输入客户的问题,ChatGPT会基于你建立的知识库,提供最佳的解决方案。

你需要记录问题和解决方案。这可以帮助你
建立更完善的知识库,

3、不用服务器直接部署

https://github.com/Yidadaa/ChatGPT-Next-Web

激光窃听声音

现代激光窃听的基本原理,都是通过红外激光器,如:激光雷达,通过窗户向室内发射看不见的红外激光,激光透过玻璃窗到达室内物体时产生回波,这个回波是由于声音振动而引起声源周边物体产生同步的振动波,这个回波再通过窗户射出传递给接收器,由接收器通过准确的测量,并进行多普勒转换,所获数据经计算机进行处理,还原出音频。

      可以通过在窗户上贴宽光谱激光窃听阻断膜来阻止这类窃听