<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>W.T.Z/WangTongZhe Blog</title><link>https://wangtongzhe.cn/</link><description>Easy Write，Easy Life</description><item><title>ChatGPT提示词工程师学习笔记</title><link>https://wangtongzhe.cn/post/179.html</link><description>&lt;p&gt;这是OpenAI联合吴恩达老师做的一个免费的如何写提示词的官方课程，时长大概一个半小时，在听完后我总结了笔记跟大家分享。&lt;/p&gt;&lt;p&gt;课程链接：&lt;a href=&quot;https://learn.deeplearning.ai/chatgpt-prompt-eng&quot; target=&quot;_blank&quot; title=&quot;点击打开&quot;&gt;点击打开&lt;/a&gt;&lt;/p&gt;&lt;p&gt;一、两种大型语言模型（LLM）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Base LLM （基础LLM）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;基于大数据训练，预测下一个词&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Instruction Tnued LLM（指令微调LLM）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;基于指令去训练&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;微调可以更好的适应&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;通过RLHF（人类反馈强化学习），使得更好的理解人类的语言&lt;/p&gt;&lt;p&gt;二、编写的两个原则&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;明确且具体提示（明确≠简短）&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p&gt;使用分隔符清晰的分割提示和指令部分（避免提示注入）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;要求结构化输出的格式（HTML，json）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;要求模型检测条件是否符合（假设符合A条件，则执行B任务）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;少样本提示（给示例，按照示例回答）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;给模型留下”思考“时间&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot;&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p&gt;指定完成任务所需要的步骤&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;指示模型在给出答案之前，做充分的思考&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;注意模型回答的幻觉（基于文章内容回答）&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;三、对提示词进行迭代&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;迭代过程类似软件开发：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;初次尝试命令&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;分析结果，发现不符合预期的地方&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;根据结果，修改提示词或者命令&lt;/p&gt;&lt;p&gt;四、常见应用场景&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1、总结：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;评价文本的感情色彩（积极，消极）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;从文本中提取特定类似的词语或者内容&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;判断文本的内容是否满足某个条件&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;识别文本中的某些内容&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;总结文本的主题，判断主题是否满足某些词语&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2、推理：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对文本按照指定条件推测是否符合结果&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;关注某一个细节进行推理&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;提取具体方面的信息&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对成百上千的评论进行总结，并在仪表盘山展示&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3、转换：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;翻译成不同国家的语言&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;判断输入的那种国家的语言&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;翻译的时候可以指定不同的场合（正式，非正式）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;可以转换不同的语气&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;不同格式数据之间的转换（html→json）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;检查语法错误&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;显示原始文本和经过修改后的文本的不同&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4、扩展：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;根据文本的感情内容去生成对应的回复&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;参数temperature：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;高的temperature可以增加回复的随机度：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2023/05/202305291685348555447939.png&quot; title=&quot;Untitled.png&quot; alt=&quot;Untitled.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;五、聊天机器人&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;可以看下我上篇文章写的如何在Django下做一个简单的AI聊天机器人：&lt;a href=&quot;https://wangtongzhe.cn/post/178.html&quot; target=&quot;_blank&quot; title=&quot;https://wangtongzhe.cn/post/178.html&quot;&gt;链接&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 29 May 2023 16:14:06 +0800</pubDate></item><item><title>基于Django与ChatGPT的简单聊天机器人</title><link>https://wangtongzhe.cn/post/178.html</link><description>&lt;p&gt;一、介绍&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;为了更容易地理解Python与ChatGPT的交互方式，本次使用Django搭建了一个简单的机器人聊天网站，包括了基本的注册和登录，保存用户聊天记录等功能。&lt;/p&gt;&lt;p&gt;二、项目&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 项目基于Django 4.2设计，直接使用sqlite数据库存储数据。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;核心功能是接收用户的问题后调用OpenAI的接口，并将结果返回给用户。 &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对于登录的用户，可以保存用户的聊天记录。该记录会作为历史消息发送给接口，以保证返回用户的时候有正确的上下文。 &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对于未登录的用户，则不会保留记录，只对当前的问题进行回复。&lt;/p&gt;&lt;p&gt;三、代码&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 这里的核心代码是调用OpenAI的服务：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;def&amp;nbsp;ask_with_completion(message:&amp;nbsp;str)&amp;nbsp;-&amp;gt;&amp;nbsp;str:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;openai.Completion.create(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;model=&amp;quot;text-davinci-003&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prompt=message,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max_tokens=1000,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;temperature=0,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(response)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;response.choices[0].text.strip()


def&amp;nbsp;ask_with_chat_completion(chat_history:&amp;nbsp;List[ChatMessage],&amp;nbsp;message):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msgs&amp;nbsp;=&amp;nbsp;[
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;quot;role&amp;quot;:&amp;nbsp;&amp;quot;system&amp;quot;,&amp;nbsp;&amp;quot;content&amp;quot;:&amp;nbsp;&amp;quot;You&amp;nbsp;are&amp;nbsp;an&amp;nbsp;AI&amp;nbsp;chatbot&amp;quot;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;item&amp;nbsp;in&amp;nbsp;chat_history:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msgs.append({&amp;quot;role&amp;quot;:&amp;nbsp;&amp;quot;user&amp;quot;,&amp;nbsp;&amp;quot;content&amp;quot;:&amp;nbsp;item.message})
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msgs.append({&amp;quot;role&amp;quot;:&amp;nbsp;&amp;quot;assistant&amp;quot;,&amp;nbsp;&amp;quot;content&amp;quot;:&amp;nbsp;item.response})
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;msgs.append({&amp;quot;role&amp;quot;:&amp;nbsp;&amp;quot;user&amp;quot;,&amp;nbsp;&amp;quot;content&amp;quot;:&amp;nbsp;message})

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;openai.ChatCompletion.create(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;model=&amp;quot;gpt-3.5-turbo&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messages=msgs,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;temperature=0,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;response.choices[0].message.content.strip()&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里的Completion.create()方法请参考：&lt;a href=&quot;https://platform.openai.com/docs/api-reference/completions/create&quot; _src=&quot;https://platform.openai.com/docs/api-reference/completions/create&quot;&gt;https://platform.openai.com/docs/api-reference/completions/create&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里的ChatCompletion.create()方法请参考：&lt;a href=&quot;https://platform.openai.com/docs/api-reference/chat-completions/create&quot; _src=&quot;https://platform.openai.com/docs/api-reference/chat-completions/create&quot;&gt;https://platform.openai.com/docs/api-reference/chat-completions/create&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;处理用户的请求View代码如下：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;class&amp;nbsp;ChatBotView(View):

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;get_history(self):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;history&amp;nbsp;=&amp;nbsp;[]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;self.request.user.is_authenticated:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;history&amp;nbsp;=&amp;nbsp;ChatMessage.objects.filter(user=self.request.user).order_by(&amp;#39;created_at&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;history

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;get(self,&amp;nbsp;request,&amp;nbsp;*args,&amp;nbsp;**kwargs):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;render(request,&amp;nbsp;&amp;#39;chatbot.html&amp;#39;,&amp;nbsp;{&amp;quot;history&amp;quot;:&amp;nbsp;self.get_history()})

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def&amp;nbsp;post(self,&amp;nbsp;request,&amp;nbsp;*args,&amp;nbsp;**kwargs):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message&amp;nbsp;=&amp;nbsp;request.POST.get(&amp;quot;message&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;history&amp;nbsp;=&amp;nbsp;self.get_history()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;self.request.user.is_authenticated:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;ask_with_chat_completion(history,&amp;nbsp;message)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_message&amp;nbsp;=&amp;nbsp;ChatMessage(user=request.user,&amp;nbsp;message=message,&amp;nbsp;response=response,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;created_at=datetime.datetime.now())
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_message.save()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;ask_with_completion(message)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;JsonResponse({&amp;quot;message&amp;quot;:&amp;nbsp;message,&amp;nbsp;&amp;quot;response&amp;quot;:&amp;nbsp;response})&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;对于未登录的用户，使用了ask_with_completion方法。对于已登录的用户，则使用了方法ask_with_chat_completion。 &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;其中，ChatMessage模型存储了历史的用户对话记录，会传递到ask_with_chat_completion中，保证用户的上下文正确。&lt;/p&gt;&lt;p&gt;四、截图&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;下面是聊天界面的截图：&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2023/05/202305261685091246542892.png&quot; title=&quot;微信图片_20230526164628.png&quot; alt=&quot;微信图片_20230526164628.png&quot; width=&quot;800&quot; height=&quot;376&quot; border=&quot;0&quot; vspace=&quot;0&quot; style=&quot;width: 800px; height: 376px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;五、资料&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;该项目已经发布到本人GitHub上，有需要的可以自行获取：&lt;a href=&quot;https://github.com/wangtongzhe/django-chatgpt-bot&quot; target=&quot;_blank&quot; textvalue=&quot;GitHub地址&quot;&gt;GitHub地址&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 26 May 2023 16:37:03 +0800</pubDate></item><item><title>elasticsearch从7.4到7.6小版本升级过程</title><link>https://wangtongzhe.cn/post/177.html</link><description>&lt;p&gt;1、从官网下载最新的安装包，将下载的文件放到我们的服务器上解压备用，记得顺便更新下系统。如果需要破解x-pack，可以参考我之前的文章，记得把破解好的包替换了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/cn/downloads/elasticsearch&quot; _src=&quot;https://www.elastic.co/cn/downloads/elasticsearch&quot;&gt;https://www.elastic.co/cn/downloads/elasticsearch&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://www.elastic.co/cn/downloads/kibana&quot; _src=&quot;https://www.elastic.co/cn/downloads/kibana&quot;&gt;https://www.elastic.co/cn/downloads/kibana&lt;/a&gt; &lt;/p&gt;&lt;p&gt;2、将下载后的文件解压缩到指定的目录，提前将配置文件配置好。这里简单记录下我修改的配置文件的内容。 对于elasticsearch的配置文件在config目录里主要修改elasticsearch.yml。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;基础配置：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cluster.name:&amp;nbsp;test-safe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.name:&amp;nbsp;node-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;node.data:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path.data:&amp;nbsp;/app/elasticsearch-7.6.2/datas
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path.logs:&amp;nbsp;/app/elasticsearch-7.6.2/logs
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bootstrap.memory_lock:&amp;nbsp;false
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;network.bind_host:&amp;nbsp;0.0.0.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;network.publish_host:&amp;nbsp;10.1.179.50
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http.port:&amp;nbsp;9200
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;discovery.seed_hosts:&amp;nbsp;[&amp;quot;10.1.179.50&amp;quot;,&amp;nbsp;&amp;quot;10.1.179.51&amp;quot;,&amp;nbsp;&amp;quot;10.1.179.52&amp;quot;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cluster.initial_master_nodes:&amp;nbsp;[&amp;quot;node-1&amp;quot;]&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;跨域配置：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http.cors.enabled:&amp;nbsp;true&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http.cors.allow-origin:&amp;nbsp;&amp;quot;*&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;http.cors.allow-headers:&amp;nbsp;Authorization,X-Requested-With,Content-Length,Content-Type&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;x-pack配置：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.transport.ssl.enabled:&amp;nbsp;true&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.transport.ssl.verification_mode:&amp;nbsp;certificate
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.transport.ssl.key:&amp;nbsp;/app/elasticsearch-7.4.1/config/certificate-bundle/node-1/node-1.key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.transport.ssl.certificate:&amp;nbsp;/app/elasticsearch-7.4.1/config/certificate-bundle/node-1/node-1.crt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.transport.ssl.certificate_authorities:&amp;nbsp;[&amp;quot;/app/elasticsearch-7.4.1/config/certificate-bundle/ca/ca.crt&amp;quot;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.http.ssl.enabled:&amp;nbsp;true
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.http.ssl.key:&amp;nbsp;/app/elasticsearch-7.4.1/config/certificate-bundle/node-1/node-1.key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.http.ssl.certificate:&amp;nbsp;/app/elasticsearch-7.4.1/config/certificate-bundle/node-1/node-1.crt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xpack.security.http.ssl.certificate_authorities:&amp;nbsp;[&amp;quot;/app/elasticsearch-7.4.1/config/certificate-bundle/ca/ca.crt&amp;quot;]&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;由于我们的内存是16G，所用需要修改jvm.options文件：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-Xms8g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;-Xmx8g&lt;/pre&gt;&lt;p&gt;3、开始升级&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;本次目标是从7.4.1升级到7.6.2，小版本升级，内容比较简单。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先我们先关闭写入es数据的程序然后关闭ES集群的shard allocation功能：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;PUT&amp;nbsp;_cluster/settings
{
&amp;nbsp;&amp;nbsp;&amp;quot;persistent&amp;quot;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;cluster.routing.allocation.enable&amp;quot;:&amp;nbsp;&amp;quot;primaries&amp;quot;
&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;使用下面的命令确保数据全部写入到了磁盘中：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;POST&amp;nbsp;_flush/synced&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如果有机器学习任务，记得也关闭下，然后停止我们老的ES程序，接下来开启新的ES程序。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;注意我这里是直接下载程序包运行的，由于ES无法运行在root上，我们需要给我们的程序设置好权限。然后以我们制定的用户运行&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;chown&amp;nbsp;-R&amp;nbsp;elsearch:elsearch&lt;/pre&gt;&lt;p&gt;4、恢复&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先我们先检查节点，确定节点都已经上线运行。&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;GET&amp;nbsp;_cat/nodes&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;开启ES集群的shard allocation功能：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;PUT&amp;nbsp;_cluster/settings
{
&amp;nbsp;&amp;nbsp;&amp;quot;persistent&amp;quot;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;cluster.routing.allocation.enable&amp;quot;:&amp;nbsp;null
&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后我们检查集群的状态，确定所有索引都恢复为绿色。&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;GET&amp;nbsp;_cat/health?v&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后，我们如果有之前关闭的机器学习任务，记得这时候重新启动下。&lt;/p&gt;&lt;p&gt;5、配置kibana&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;停止我们当前的kibana程序，可以使用fuser -n tcp 5601查看程序id，然后kill掉。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;配置kibana，这里记录下我修改过的位置：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server.port:&amp;nbsp;5601&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server.host:&amp;nbsp;&amp;quot;0.0.0.0&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server.name:&amp;nbsp;&amp;quot;safe-kibana&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.hosts:&amp;nbsp;[&amp;quot;https://10.1.179.50:9200&amp;quot;,&amp;quot;https://10.1.179.51:9200&amp;quot;,&amp;quot;https://10.1.179.52:9200&amp;quot;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.username:&amp;nbsp;&amp;quot;elastic&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.password:&amp;nbsp;&amp;quot;elastc&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.ssl.certificateAuthorities:&amp;nbsp;[&amp;nbsp;&amp;quot;/app/elasticsearch-7.6.2/config/certificate-bundle/ca/ca.crt&amp;quot;&amp;nbsp;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.ssl.certificate:&amp;nbsp;/app/elasticsearch-7.6.2/config/certificate-bundle/node-3/node-3.crt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;elasticsearch.ssl.key:&amp;nbsp;/app/elasticsearch-7.6.2/config/certificate-bundle/node-3/node-3.key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i18n.locale:&amp;nbsp;&amp;quot;zh-CN&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后重新运行：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;nohup&amp;nbsp;./bin/kibana&amp;nbsp;--allow-root&amp;nbsp;&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 08 May 2020 13:51:38 +0800</pubDate></item><item><title>有关ElasticSearch 7 下插件X-Pack 7.6.X 破解的记录</title><link>https://wangtongzhe.cn/post/176.html</link><description>&lt;p&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;strong&gt;1、准备工作&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;准备最新的elasticsearch的源代码：&lt;a href=&quot;https://github.com/elastic/elasticsearch/releases&quot; target=&quot;_self&quot;&gt;https://github.com/elastic/elasticsearch/releases&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;准备和elasticsearch版本对应的安装包：&lt;a href=&quot;https://www.elastic.co/cn/downloads/elasticsearch&quot; target=&quot;_self&quot;&gt;https://www.elastic.co/cn/downloads/elasticsearch&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;strong&gt;2、修改源代码中的两处文件&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;解压源代码后。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先修改在 \x-pack\plugin\core\src\main\java\org\elasticsearch\license 目录下修改用于认证的代码文件LicenseVerifier.java。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;/*
&amp;nbsp;*&amp;nbsp;Copyright&amp;nbsp;Elasticsearch&amp;nbsp;B.V.&amp;nbsp;and/or&amp;nbsp;licensed&amp;nbsp;to&amp;nbsp;Elasticsearch&amp;nbsp;B.V.&amp;nbsp;under&amp;nbsp;one
&amp;nbsp;*&amp;nbsp;or&amp;nbsp;more&amp;nbsp;contributor&amp;nbsp;license&amp;nbsp;agreements.&amp;nbsp;Licensed&amp;nbsp;under&amp;nbsp;the&amp;nbsp;Elastic&amp;nbsp;License;
&amp;nbsp;*&amp;nbsp;you&amp;nbsp;may&amp;nbsp;not&amp;nbsp;use&amp;nbsp;this&amp;nbsp;file&amp;nbsp;except&amp;nbsp;in&amp;nbsp;compliance&amp;nbsp;with&amp;nbsp;the&amp;nbsp;Elastic&amp;nbsp;License.
&amp;nbsp;*/
package&amp;nbsp;org.elasticsearch.license;

/**
&amp;nbsp;*&amp;nbsp;Responsible&amp;nbsp;for&amp;nbsp;verifying&amp;nbsp;signed&amp;nbsp;licenses
&amp;nbsp;*/
public&amp;nbsp;class&amp;nbsp;LicenseVerifier&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;verifies&amp;nbsp;the&amp;nbsp;license&amp;nbsp;content&amp;nbsp;with&amp;nbsp;the&amp;nbsp;signature&amp;nbsp;using&amp;nbsp;the&amp;nbsp;packaged
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;public&amp;nbsp;key
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@param&amp;nbsp;license&amp;nbsp;to&amp;nbsp;verify
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;@return&amp;nbsp;true&amp;nbsp;if&amp;nbsp;valid,&amp;nbsp;false&amp;nbsp;otherwise
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;boolean&amp;nbsp;verifyLicense(final&amp;nbsp;License&amp;nbsp;license,&amp;nbsp;byte[]&amp;nbsp;publicKeyData)&amp;nbsp;{
		return&amp;nbsp;true;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;boolean&amp;nbsp;verifyLicense(final&amp;nbsp;License&amp;nbsp;license)&amp;nbsp;{
		return&amp;nbsp;true;
	}
}&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后修改 \x-pack\plugin\core\src\main\java\org\elasticsearch\xpack\core 目录下修改用于校验包的代码文XPackBuild.java。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;package&amp;nbsp;org.elasticsearch.xpack.core;
import&amp;nbsp;org.elasticsearch.common.SuppressForbidden;
import&amp;nbsp;org.elasticsearch.common.io.PathUtils;
import&amp;nbsp;java.io.IOException;
import&amp;nbsp;java.net.URISyntaxException;
import&amp;nbsp;java.net.URL;
import&amp;nbsp;java.nio.file.Files;
import&amp;nbsp;java.nio.file.Path;
import&amp;nbsp;java.util.jar.JarInputStream;
import&amp;nbsp;java.util.jar.Manifest;
public&amp;nbsp;class&amp;nbsp;XPackBuild&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;final&amp;nbsp;XPackBuild&amp;nbsp;CURRENT;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CURRENT&amp;nbsp;=&amp;nbsp;new&amp;nbsp;XPackBuild(&amp;quot;Unknown&amp;quot;,&amp;nbsp;&amp;quot;Unknown&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Returns&amp;nbsp;path&amp;nbsp;to&amp;nbsp;xpack&amp;nbsp;codebase&amp;nbsp;path
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@SuppressForbidden(reason&amp;nbsp;=&amp;nbsp;&amp;quot;looks&amp;nbsp;up&amp;nbsp;path&amp;nbsp;of&amp;nbsp;xpack.jar&amp;nbsp;directly&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&amp;nbsp;Path&amp;nbsp;getElasticsearchCodebase()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;URL&amp;nbsp;url&amp;nbsp;=&amp;nbsp;XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;PathUtils.get(url.toURI());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(URISyntaxException&amp;nbsp;bogus)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw&amp;nbsp;new&amp;nbsp;RuntimeException(bogus);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;shortHash;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;date;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XPackBuild(String&amp;nbsp;shortHash,&amp;nbsp;String&amp;nbsp;date)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.shortHash&amp;nbsp;=&amp;nbsp;shortHash;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.date&amp;nbsp;=&amp;nbsp;date;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;shortHash()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;shortHash;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;String&amp;nbsp;date()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;date;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;3、重新编译&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;解压我们下载的对应版本的elasticsearc的安装包，这里以7.6.2版本为例，使用javac重新编译LicenseVerifier.java，并在当前目录下生成LicenseVerifier.class：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;javac&amp;nbsp;-cp&amp;nbsp;&amp;quot;/root/es/elasticsearch-7.6.2/modules/x-pack-core/x-pack-core-7.6.2.jar:/root/es/elasticsearch-7.6.2/lib/*&amp;quot;&amp;nbsp;LicenseVerifier.java&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;继续编译XPackBuild.java，并生成XPackBuild.class：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;javac&amp;nbsp;-cp&amp;nbsp;&amp;quot;/root/es/elasticsearch-7.6.2/modules/x-pack-core/x-pack-core-7.6.2.jar:/root/es/elasticsearch-7.6.2/lib/*&amp;quot;&amp;nbsp;XPackBuild.java&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 上面需要注意的是，我们要找一台安装了java的Liunx系统去编译，Windows下测试会出现找不到符号的错误。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;strong&gt;4、重新打包&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;解压我们刚才打包用到的x-pack-core-7.6.2.jar，并将生成的LicenseVerifier.class和XPackBuild.class替换解压后的文件。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;替换 \org\elasticsearch\license 目录下的LicenseVerifier.class。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;替换 \org\elasticsearch\xpack\core 目录下的XPackBuild.class。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;重新打包，其中x-pack-core-7.6.2/META-INF/MANIFEST.MF是我们清单的位置：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;jar&amp;nbsp;cvfm&amp;nbsp;x-pack-core-7.6.2_new.jar&amp;nbsp;x-pack-core-7.6.2/META-INF/MANIFEST.MF&amp;nbsp;-C&amp;nbsp;x-pack-core-7.6.2/&amp;nbsp;.&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;strong&gt;5、覆盖文件&lt;/strong&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;将我们刚才生成的x-pack-core-7.6.2_new.jar 改名成我们对应的es版本x-pack-core-7.x.x.jar，并替换我们es安装路径 /modules/x-pack-core/ 中的同名文件。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 20px;&quot;&gt;&lt;strong&gt;6、更新许可证&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先去官网申请license。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;使用文本编辑器打开申请到的license，修改下面的内容：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;把type修改为platinum&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;把expiry_date_in_millis这个时间戳修改的大一点&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;max_nodes这个最大的节点数也可以调大点&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后更新我们的许可证：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;curl&amp;nbsp;-u&amp;nbsp;elastic:elastic&amp;nbsp;-XPUT&amp;nbsp;‘http://{es-ip}:{es-port}/_xpack/license’&amp;nbsp;-H&amp;nbsp;“Content-Type:&amp;nbsp;application/json”&amp;nbsp;-d&amp;nbsp;@/tmp/license.json&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;恭喜，至此我们完成了所有白嫖过程！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;顺便提供下7.6.2版本生成的那两个class文件的下载：&lt;img src=&quot;https://wangtongzhe.cn/zb_system/image/filetype/zip.png&quot; style=&quot;vertical-align: middle; margin-right: 2px;&quot;/&gt;&lt;a href=&quot;https://wangtongzhe.cn/zb_users/upload/2020/05/202005121589270110641106.zip&quot; title=&quot;crack.zip&quot; style=&quot;font-size: 12px; color: rgb(0, 102, 204);&quot;&gt;crack.zip&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 29 Apr 2020 15:19:07 +0800</pubDate></item><item><title>为Github监控平台Hawkeye添加简单身份验证登录</title><link>https://wangtongzhe.cn/post/175.html</link><description>&lt;p&gt;0、前言：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;一直使用大神的Hawkeye作为公司扫描Github的平台，但由于最近部署在了外网，所有希望增加一个身份认证的功能，研究了下，最简单的就说在nginx上添加一个基本的身份认证。&lt;/p&gt;&lt;p&gt;1、操作：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;通过docker ps 命令找到Hawkeye容器的id，用下面的命令进入docker。&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;docker&amp;nbsp;exec&amp;nbsp;-it&amp;nbsp;d987ea1bacc7&amp;nbsp;/bin/bash&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我们先安装下基本的软件，一会儿会使用到，安装软件之前使用apt update命令先更新下软件源信息。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;安装 htpasswd 工具和vim 工具。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;apache2-utils
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;vim&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;通过htpasswd 创建我们的用户名和密码。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;htpasswd&amp;nbsp;-c&amp;nbsp;-d&amp;nbsp;/etc/openresty/pass-file&amp;nbsp;admin&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;其中 /etc/openresty/pass-file 是我们密码文件的存储位置，admin是我们的用户名，然后会提醒我们设置两次密码。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;修改nginx的配置文件。我们看到容器中使用了o&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: arial; font-size: medium;&quot;&gt;penresty，找到配置文件的位置/etc/openresty/Hawkeye.conf，添加如下代码。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;auth_basic&amp;nbsp;&amp;quot;Please&amp;nbsp;input&amp;nbsp;password&amp;quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;auth_basic_user_file&amp;nbsp;/etc/openresty/pass-file;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: 微软雅黑, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2020/04/202004201587370382273249.png&quot; title=&quot;微信图片_20200420161044.png&quot; alt=&quot;微信图片_20200420161044.png&quot;/&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: 微软雅黑, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;验证并且重启nginx。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: 微软雅黑, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;openresty&amp;nbsp;-t
&amp;nbsp;&amp;nbsp;&amp;nbsp;openresty&amp;nbsp;-s&amp;nbsp;reload&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: 微软雅黑, &amp;quot;Microsoft YaHei&amp;quot;; font-size: 14px;&quot;&gt;&lt;/span&gt;2、效果&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;再次打开我们的UI页面，发现已经提示要输入密码了。至此我们已经完成了所要的功能。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2020/04/202004201587370653584568.png&quot; title=&quot;微信图片_20200420161655.png&quot; alt=&quot;微信图片_20200420161655.png&quot; width=&quot;619&quot; height=&quot;375&quot; style=&quot;width: 619px; height: 375px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;4、结语&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;现在GitHub的官方已经建议使用access key访问，希望大神及时更新啊。&lt;/p&gt;</description><pubDate>Mon, 20 Apr 2020 15:46:05 +0800</pubDate></item><item><title>2019年读书清单</title><link>https://wangtongzhe.cn/post/174.html</link><description>&lt;p&gt;读了一些书，但是一直都没记录，发现自己深陷鸡汤了，还是先赐我一个女盆友帮帮我吧&lt;img src=&quot;https://wangtongzhe.cn/zb_users/emotion/default/grin.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;1．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《把生活过成你想要的样子》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：2019-01&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/4180711/&quot; _src=&quot;https://book.douban.com/subject/4180711/&quot; style=&quot;box-sizing: border-box; background: transparent; color: rgb(0, 154, 97); text-decoration-line: none; outline: 0px;&quot;&gt;https://book.douban.com/subject/26853032/&lt;/a&gt;&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;感想：一本标准的鸡汤精啊，主要死因为都是短篇的故事，比较适合在地铁中上下班的时候读一读，大道理还是比比皆是的，也算是有一部分学习到的吧，随便摘录了几句话，表示我还是都翻完了&lt;img src=&quot;https://wangtongzhe.cn/zb_users/emotion/default/smile.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;只有每天进步的人，才能过上稳定生活，才不会感觉到不耐烦。&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;真正的宝贵资源其实来自我们的内在。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;所谓一生活过几生，关键的问题不在长度而在宽度，勇敢地选择不一样的生活，多一次冒险，就多一次体验不同人生的机会。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;迟早要拒绝的事，不如一开始就说清楚。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;感动你的不是别人，永远都是自己。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我们总是喜欢近在咫尺的稳妥，然而事实上，你与别人的差距如何拉开，就在于能不能走过别人没走的路，吃过别人没吃的苦，见过别人没见的人。&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;弱者才去逞强，因为害怕被当成弱者；强者却懂示弱，因为强大即是宽容。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;独处是灵魂生长的必要空间，在独处时，我们从别人和事务中抽身出来，回到了自己。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;在所有朋友中，不能缺了最重要的一个，那就是自己。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;2．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《七堂思维成长课》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：2019-02&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/30310710/&quot; _src=&quot;https://book.douban.com/subject/30310710/&quot;&gt;https://book.douban.com/subject/30310710/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;感想：&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;拖本书的主干是心理学、行为经济学和神经科学的组合。心理学更多的是关注幸福，行为经济学更偏重现实的行为理论，神经科学用来衡量大脑的活动方式是我更加成熟精确。多多实践吧！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;书中描述了三大科学主题：&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;双脑系统：一个有意识且受控制，一个无意识且瓶本能。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;发现-防守之轴：在潜意识中，我们一直在寻找需要抵御的威胁和需要发现的奖励。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;精神-身体环路：人类的身体和精神状态直接的互相交错远比我们认识到的深入。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;div&gt;大脑的两个系统:深思熟虑系统负责推理、自我控制和前瞻思维等复杂功能。它擅长处理所有陌生、复杂或者抽象的事情。但这套系统容量有限，很容易疲劳。&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/span&gt;判断你可能正落入证实性偏见陷阱的一个很有用的信号是，发现自己使用绝对性用语，如“从不”“总是”“完全”“全部”“绝对”“一定”等词语，可能还包括“非常”或“极度”。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;最好把宏大无畏的目标拆分成一系列你能实现的小步骤目标。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;3．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《选择:为什么我选的不是我要的？》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;2019-04&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/4180711/&quot; _src=&quot;https://book.douban.com/subject/4180711/&quot; style=&quot;box-sizing: border-box; background: transparent; color: rgb(0, 154, 97); text-decoration-line: none; outline: 0px;&quot;&gt;https://book.douban.com/subject/30452100/&lt;/a&gt;&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;感想：一本关于如何选择的书，书中举例的故事很多，但是理论很生硬，让人有一种很难读下去的感觉，还是坚持读完了，选择很重要，我们的人生就是无视的选择组成的，记了点书中的内容吧。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;你可以拒绝一次机会，但是在特定的情况下，你无法拒绝做出必需的选择。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;我们也可以用人生路上不断做出的选择来衡量我们的生活，这些选择最终成就了今天的你我。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;文化对于我们在特定情况下对何种事物主宰局面的理解有着极大的影响。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;在我们遵从有多个条条框框的表象之下，隐藏着一个恒定、独特而真实的自我。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;我们都应该少关注自己是否做得完美，而去多关注和亲人共度的简单而快乐的时光。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;当我们需要进行选择时，我们会着重思考采取行动后潜在的危害，却很少考虑不采取行动会陷入的麻烦。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Tue, 30 Apr 2019 11:21:24 +0800</pubDate></item><item><title>Windows10下PyCharm中通过PySpark操作Spark(Anaconda)</title><link>https://wangtongzhe.cn/post/173.html</link><description>&lt;p&gt;本文主要记录了在Windows10下通过Pycharm编写程序并在本地调用Spark运行，综合一些文章的内容，并且修改一些文章的问题。&lt;/p&gt;&lt;p&gt;安装环境：Win10&lt;/p&gt;&lt;p&gt;安装软件：hadoop2.8.5，spark2.3.2，scala2.12.7，anaconda5.2.0&lt;/p&gt;&lt;p&gt;0、前言&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先安装scala，到&amp;nbsp;&lt;a href=&quot;https://www.scala-lang.org/download&quot; target=&quot;_self&quot;&gt;https://www.scala-lang.org/download&lt;/a&gt; 下载Windows版进行安装。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后到&amp;nbsp;&lt;a href=&quot;https://www.anaconda.com/download/&quot; target=&quot;_self&quot;&gt;https://www.anaconda.com/download/&lt;/a&gt; 下载python3版本的anaconda并进行安装，安装过程中记得勾选Add PATH的选项。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 接着下载Hadoop&amp;nbsp;&lt;a href=&quot;https://hadoop.apache.org/releases.html&quot; target=&quot;_self&quot;&gt;https://hadoop.apache.org/releases.html&lt;/a&gt;&amp;nbsp;(binary包)解压缩，解压缩目录中不要有中文。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后下载Spark&amp;nbsp;&lt;a href=&quot;http://spark.apache.org/downloads.html&quot; target=&quot;_self&quot;&gt;http://spark.apache.org/downloads.html&lt;/a&gt; ，这里选择包含hadoop2.7的预编译版本下载，注意解压缩的时候要用管理员权限进行，解压缩目录中不要有中文。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 然后在系统环境变量里配置好HADOOP_HOME，SPARK_HOME等环境变量。&lt;/p&gt;&lt;p&gt;1、使用Spark&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;安装成功后我们先进行测试，运行spark-shell，此时可能会出现winutils.exe文件找不到的错误。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;此时到 &lt;a href=&quot;https://github.com/steveloughran/winutils&quot; target=&quot;_self&quot;&gt;https://github.com/steveloughran/winutils&lt;/a&gt;&amp;nbsp;中下载对应hadoop的winutils.exe文件。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;改权限 winutils.exe chmod 777 D:\tmp\Hive，在运行命令前先创建目录 D:\tmp\Hive 。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/941b41e96c1d72b3.jpg&quot; width=&quot;762&quot; height=&quot;372&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 762px; height: 372px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这时表示运行成功，然后运行pyspark进行测试。&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/fb495c60bc384bbf.jpg&quot; width=&quot;752&quot; height=&quot;351&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 752px; height: 351px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;2、对PyCharm进行配置&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;保证anaconda已经安装完成，此时PyCharm中就可以创建conda的虚拟环境了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;创建新项目，选Pure&amp;nbsp;Python，然后选择Conda虚拟环境，python版本为3.6，设置名称后点击create。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/21e8f5bb72fa18fa.jpg&quot; width=&quot;793&quot; height=&quot;499&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 793px; height: 499px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;一段时间后我们的基本环境就创建完成了。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;接着我们到项目设置中的project&amp;nbsp;interpreter中添加py4j和pyspark包。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/da215803826cc8c7.jpg&quot; width=&quot;854&quot; height=&quot;511&quot; style=&quot;width: 854px; height: 511px;&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后，我们要向pycharm中添加Spark的Libraries。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在project&amp;nbsp;interpreter中点击那个小箭头，选择show&amp;nbsp;all，在弹出的选择框中，选择我们是虚拟环境然后点击右侧显示path的小图标，在打开的对话框中新增&lt;/p&gt;&lt;ul style=&quot;list-style-type: none;&quot; class=&quot; list-paddingleft-2&quot;&gt;&lt;li&gt;&lt;p&gt;%SPARK_HOME%\python&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;%SPARK_HOME%\python\lib\py4j-0.10.7-src.zip&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;也可以直接写路径，或者使用环境变量，然后确定。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/60d3db22301d7549.jpg&quot; width=&quot;747&quot; height=&quot;453&quot; style=&quot;width: 747px; height: 453px;&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;最后建议在我们py文件对应的环境变量配置中添加上python文件的路径，如下图。&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/f9a6c9de4ab60c6a.jpg&quot; width=&quot;596&quot; height=&quot;419&quot; style=&quot;width: 596px; height: 419px;&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;至此，我们所有的配置都完成了。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;3、测试&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;from&amp;nbsp;pyspark&amp;nbsp;import&amp;nbsp;SparkContext

sc&amp;nbsp;=&amp;nbsp;SparkContext(&amp;#39;local&amp;#39;)
doc&amp;nbsp;=&amp;nbsp;sc.parallelize([[&amp;#39;a&amp;#39;,&amp;nbsp;&amp;#39;b&amp;#39;,&amp;nbsp;&amp;#39;c&amp;#39;],&amp;nbsp;[&amp;#39;b&amp;#39;,&amp;nbsp;&amp;#39;d&amp;#39;,&amp;nbsp;&amp;#39;d&amp;#39;]])
words&amp;nbsp;=&amp;nbsp;doc.flatMap(lambda&amp;nbsp;d:&amp;nbsp;d).distinct().collect()
word_dict&amp;nbsp;=&amp;nbsp;{w:&amp;nbsp;i&amp;nbsp;for&amp;nbsp;w,&amp;nbsp;i&amp;nbsp;in&amp;nbsp;zip(words,&amp;nbsp;range(len(words)))}
word_dict_b&amp;nbsp;=&amp;nbsp;sc.broadcast(word_dict)


def&amp;nbsp;wordCountPerDoc(d):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dict_new&amp;nbsp;=&amp;nbsp;{}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wd&amp;nbsp;=&amp;nbsp;word_dict_b.value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;w&amp;nbsp;in&amp;nbsp;d:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;wd[w]&amp;nbsp;in&amp;nbsp;dict_new:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dict_new[wd[w]]&amp;nbsp;+=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dict_new[wd[w]]&amp;nbsp;=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;dict_new


print(doc.map(wordCountPerDoc).collect())
print(&amp;quot;successful!&amp;quot;)&lt;/pre&gt;&lt;p&gt;我们使用上面的代码进行测试，如果可以正常输出结果，则证明我们配置成功。&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/3673dd71785cbdde.jpg&quot; width=&quot;643&quot; height=&quot;172&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 643px; height: 172px;&quot;/&gt;&lt;/p&gt;</description><pubDate>Mon, 08 Oct 2018 15:23:18 +0800</pubDate></item><item><title>用Python打印一个爱心-详细版</title><link>https://wangtongzhe.cn/post/172.html</link><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;首先这不是一篇技术文章，只是有个小白朋友问我这个是怎么做的，所以我记录了详细的过程，并且想说一句，有的时候你看的并不是真实的，很多东西都有内在的你不知道的原因的。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 1、 下载python&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我这里用python3版本为例子讲解。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;从官网下载python安装包，打开&lt;a href=&quot;https://www.python.org/downloads/release/python-366/&quot;&gt;https://www.python.org/downloads/release/python-366/&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515312902889.png&quot; title=&quot;clip_image001.png&quot; alt=&quot;clip_image001.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;2、 安装python&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;双击打开下载程序&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515377205298.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在途中箭头的的地方打钩，然后选择Install Now，然后一直下一步安装完成。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Win键+R键打开运行对话框，输入cmd后回车，打开命令提示符，输入python后回车判断是否安装成功，如安装成功会显示下图内容。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515410335020.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px&quot;&gt;3、 编写思路&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&lt;span style=&quot;;color:#333333;background:white&quot;&gt;首先，要知道心形函数的写法，可以百度下，有很多，我就采用下面这个做例子：&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&lt;span style=&quot;;color:#333333;background:white&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515434200002.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;然后，一行一行打印，在函数内部的我们打印词，在函数外面的打印空格就可以了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4、 具体代码&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;word&amp;nbsp;=&amp;nbsp;&amp;quot;LOVE&amp;quot;
for&amp;nbsp;char&amp;nbsp;in&amp;nbsp;word.split():
&amp;nbsp;&amp;nbsp;&amp;nbsp;allChar&amp;nbsp;=&amp;nbsp;[]
&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;y&amp;nbsp;in&amp;nbsp;range(12,&amp;nbsp;-12,&amp;nbsp;-1):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst&amp;nbsp;=&amp;nbsp;[]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_con&amp;nbsp;=&amp;nbsp;&amp;#39;&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;x&amp;nbsp;in&amp;nbsp;range(-30,&amp;nbsp;30):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;formula&amp;nbsp;=&amp;nbsp;((x*0.04)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;formula&amp;nbsp;&amp;lt;=&amp;nbsp;0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_con&amp;nbsp;+=&amp;nbsp;char[(x)&amp;nbsp;%&amp;nbsp;len(char)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst_con&amp;nbsp;+=&amp;nbsp;&amp;#39;&amp;nbsp;&amp;#39;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lst.append(lst_con)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;allChar&amp;nbsp;+=&amp;nbsp;lst
&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&amp;#39;\n&amp;#39;.join(allChar))
&amp;nbsp;&amp;nbsp;&amp;nbsp;input(&amp;#39;按任意键退出&amp;#39;)&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px&quot;&gt;5、 运行方法&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;在桌面上新建一个文本文件。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;将上面的代码拷贝到文本文件中，注意每一行的空格。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515751389808.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;保存文件后，将文本文件重命名为heart.py，注意后缀名是py。&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;双击运行该文件即可。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515769434503.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px&quot;&gt;6、 最终结果&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2018/08/201808171534515798299106.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p class=&quot;MsoListParagraph&quot; style=&quot;margin-left:24px;text-indent:0&quot;&gt;注：代码内容暂不详细解释啦。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 17 Aug 2018 22:11:18 +0800</pubDate></item><item><title> 2018年读书清单</title><link>https://wangtongzhe.cn/post/171.html</link><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;今年因为个人原因，断断续续的都没看完一本书，从今天开始要认真读书并且记录了！&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;1．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《拖延心理学》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：2018-03-20&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/4180711/&quot; _src=&quot;https://book.douban.com/subject/4180711/&quot;&gt;https://book.douban.com/subject/4180711/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：&lt;/span&gt;拖延是由心理根源，生物因素和人生经验三者交织组成的。明确目标的观察性和操作性，尽可能的分解&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;2．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《提问的力量》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：2018-04-22&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/27015114/&quot; _src=&quot;https://book.douban.com/subject/27015114/&quot;&gt;https://book.douban.com/subject/27015114/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：&lt;/span&gt;多一些提问，少一些断言，我们就能找到共同点。&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;诊断型问题是质询的开始阶段，是构建其他问题的基础。战略型问题辅助人们了解定义，做出解释和贯彻实施。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;共情型问题可以增进对陌生人和于自己大相径庭的人的了解。桥接型问题鼓励人们在不想开口说话的时候开口说话。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;对抗型问题将问题摆在桌面上，索要正式的回答。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;创意型问题主张别出心裁的想法，他能引发想像。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;任务型问题帮你将他人加入一场真正的对话，讨论你的人生目标以及每个人能为这项任务带来什么。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;3．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; font-weight: 700; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;《请停止无效努力》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; line-height: 22.4px; background-color: #FFFFFF;&quot;&gt;日期：2018-05-29&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;介绍：&lt;/span&gt;&lt;a href=&quot;https://book.douban.com/subject/26936065/&quot; _src=&quot;https://book.douban.com/subject/26936065/&quot; style=&quot;white-space: normal; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;https://book.douban.com/subject/26936065/&lt;/a&gt;&lt;br style=&quot;white-space: normal;&quot;/&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：本书围绕着努力展开讲解，并且向我们揭示了努力并非百分百有效，我们要能分辨出无效的努力，并且可以让努力更加有效果，下面是文章观点一些摘录。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;天赋包括能力天赋和意愿天赋，能量天赋只是自己的潜能，需要转化。热情来源于自主感，胜任感和归属感。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我们的学习是T字型的，在一个领域可以是精通，到对于其他领域，则重点在于了解和建立跨领域之间的联系。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;长期有用的东西必须转化为短期有用的东西，一个大的学习内容，需要拆分出对我们有用的东西并进行集中学习。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;不是所有的问题都是真正的问题，不是所有真正的问题都值得被解决，看到问题时不要马上解决，先过一遍清单。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;多数的时候我们只在乎观点，而不在乎事实。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;你的价值＝自身价值加+平台高度&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;给出你的职业规划的人最终一定是你自己。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;工作不全是痛苦，生活也不全是快乐。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF; box-sizing: border-box; line-height: 22.4px;&quot;&gt;4．&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF; box-sizing: border-box; font-weight: 700; line-height: 22.4px;&quot;&gt;《所谓情商高，就是会说话》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF; box-sizing: border-box; line-height: 22.4px;&quot;&gt;结束日期：2018-06-04&amp;nbsp; &amp;nbsp;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/26865749/&quot; target=&quot;_blank&quot; textvalue=&quot;https://book.douban.com/subject/26865749/&quot;&gt;https://book.douban.com/subject/26865749/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：书的内容不多，但是很多方法值得借鉴。首先变yes的三个步骤：不直接说出自己想法；揣摩对方的心理；考虑符合对方利益的措辞。其次选择的突破口:投其所好，儆其所恶，选择的自由，被认可欲，非你不可，团队化，感谢。此外在措辞高手路上迈出的第一步，就是经常说一句“谢谢”。最后创造警句的技巧:惊奇法，反差法，赤裸裸法，重复法，高潮法，数字法，合体法，定点法。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;5．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; line-height: 22.4px;&quot;&gt;《读书是一辈子的事》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;结束日期：2018-06-04&amp;nbsp; &amp;nbsp;&lt;br/&gt;&lt;/span&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/26865749/&quot; target=&quot;_blank&quot; textvalue=&quot;https://book.douban.com/subject/26865749/&quot;&gt;https://book.douban.com/subject/27613063/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：本书主要是樊登在解析不同书的不同理解方法，以此为目标让我们如何真正的去读懂一本书。读书作为一项必须的技能是我们应该固守的，但是如何高效的深入的去理解一本书，却一直是一个难题，作者尝试从不同角度去深入了解不同的书，给读者指明一条更好的道路。下面记录了不同书中作者强调的观点，以此记录来勉励自己。&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;幸福是一种能力，与状态无关，是可以锻炼的。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;我们不能回到过去，也不能马上实现愿望，所以要在现在此刻感受当下的快乐，心理总回忆过去或憧憬未来，这一刻就变成了痛苦的忍耐。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;四种情绪病：过分烦躁，过分生气，过分抑郁，过分内疚。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;你完全可以走自己的路，因为你今天的目标是走自己的路，不是跟别人较劲。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;心理问题分为七类：拒绝，孤独，内疚，丧失和创伤，反刍，失败，自卑。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;明白这个世界充满了善意，就算有人偶尔拒绝了你，那也是因为意外和误会，而不是刻意针对你。这个世界上没有那么多人愿意针对你做什么，能够针对你的都是爱你的人，有针对的伤害才是真爱。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;发消息的时候一定要打表情的，因为你说的这句话和对方看到的这句话很可能是两句话。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;比起那些一直都喜欢我们的人，我们会喜欢逐渐喜欢上我们的人；比起逐渐喜欢上我们的人，我们会觉得那些起初不喜欢我们，但后来逐渐喜欢我们的人更有价值。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;人生幸福的三大块:第一要有成功的事业，第二要有良好的家庭和朋友系统，第三要保持正直。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;原理的价值——它能解释将要发生什么，甚至在你亲身经历之前就告诉你将要发生的情况。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;战略是：有目标，如何实现自己的目标。找到你喜爱的工作，你会觉得这一生没有一天在工作。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;亲密的关系是需要你投入时间的。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;一个人成功的速度取决于你从挫败中恢复的速度，你从挫败中恢复得越快，你成功的速度就会越快。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;交流的最佳效果来自谈吐得体且态度真诚，其关键点在于你不需要直愣愣地冒出大实话，而是适当地修饰后的诚实表达。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;非暴力沟通，在你表达的时候，要说出感受，而不是进行批判。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;有时候，我们可能无法选择做不做这件事，但是我们永远可以选择的是我们面对这件事的态度。&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;6．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; line-height: 22.4px;&quot;&gt;《洞察：精确观察和有效沟通的艺术》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;结束日期：2018-08-01&lt;br/&gt;&lt;/span&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/26865749/&quot; target=&quot;_blank&quot; textvalue=&quot;https://book.douban.com/subject/26865749/&quot;&gt;https://book.douban.com/subject/30047160/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：本书主要讲的就是如何通过提高艺术观察能力来提升自己的沟通方法的，作者通过寻寻渐进的方法引导我们去解读一幅幅的历史名画，从而培养我们的观察能力和推理能力，帮助我们在后来的沟通中更加的容易。下面记录了书中的一些观点，以此记录来鼓励自己。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;我们并不是通过眼睛，而是通过大脑在观察世界的。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;匆忙会导致出错，出错带来时间上的耽搁要远远大于放慢速度去做事。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;我们不能假定任何其他人能看到我们所看到的东西，不能假定我们能看到他们所看到的东西，也不能假定我们之中任何一个人能够准确无误地看到什么东西就在那里。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;不能仅凭有人说了一些什么“是真的”就信以为真。人会说谎，有时亲眼看见的东西并不一定就是事实。想要确定一件事是否为真实情况，你需要做多次核实。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;找到并注意到细节，不仅能帮助我们避免灾难，还能给我们带来成功，或是解决问题的方法。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;事实上，想象别人的视角、反应和关注点的能力，是人类拥有的最重要的认知工具，因为它不仅会使我们更具同理心，而且能在和人交往（或者想象该如何和这个人交往）的过程中，更容易领悟到对方的所思所想。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;学会对看到的东西进行有限排序，因为别人会从你的排序中看出你是一个什么样的人。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;无论我们交流的内容是什么，用什么方法在交流，我们都可以通过学习计划、练习和用心地实施，去创造出最好的信息。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;当我们交流的时候，也需要确保自己没有让想说的话变得复杂，不要说太多，不要用太多的词，不要讲没必要的信息。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;不适感会以很多种形式到来，但是你越是把它看成既成事实迎上去，你越会扩大自己的舒适地带。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;就是因为我们无视那些事实，或者选择不去相信那些我们所看到的真实情况，才让糟糕的事情发生的。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;如果需要传达一种感觉，比如“我爱你”，那么请运用你的情绪。如果需要传达一个事实，比如“你的表现在正常标准以下”，请去除你的情绪，除非你想让对方也和你有同样的情绪。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;客观地处理事实，不受主观因素的困扰。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;我们每天焦虑的主要原因是我们觉得自己有太多的事情要做，但是没有足够的时间去完成，这让我们很沮丧，因为我们的大脑潜意识被未完成的任务困扰。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;7&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; line-height: 22.4px;&quot;&gt;《好好说话》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;结束日期：2018-08-28&amp;nbsp; &amp;nbsp;&lt;br/&gt;&lt;/span&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/26865749/&quot; target=&quot;_blank&quot; textvalue=&quot;https://book.douban.com/subject/26865749/&quot;&gt;https://book.douban.com/subject/26948148/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;感想：这本书中作者通过自己身边的小事去分析了在不同的情境下该如何去说话。书中更多的使用通俗易懂并且实在发生的事情作为例证去分析问题，这样我们就可以直接对号入座了，书中的分门别类的列举了很多技巧，这些都是相辅相成的，因为事实的场景是复杂的，我们必须同时运用多个技巧解决问题，不过这些技巧有的时候真的会让人觉得好累，羡慕那些天生会说话的人。摘录了一些书中的观点，以此提醒自己在说话问题上要不断的改变自己不完美的地方。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;底气来自实力。淡定地“不说话”的底气，来自“如果说，就一定能好好说”的实力。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;说话要兼具“耐思”（进行深入的思考和分析的智慧）、“耐撕”（处理观点交锋和利益冲突的能力）、“nice”（与人为善追求达成共识）&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;说话最重要的是语境。说话是权利的游戏。演讲是权利的形成，沟通是权利的流动，说服是权利在对方，谈判是权利在双方，辩论是权利在他方。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;沟通就是使原本不相通的事物变得相通。&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;沟通策略:买时间。制造意外、引发好奇、回应主题，将原本紧迫的沟通机会争取扩大，让对方不由自主地想听下去。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;传递坏消息时，我们更需要展示出的应该是一种中立的姿态，既不过分亲热，又不过分冷漠，才能做到既准确忠实地传递消息，又不会进一步刺激到接收方的情绪。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;无论我们有多善解人意，我们都只是来传达消息的，而不是来道歉的，说句“很遗憾”也就行了，不要上升到愧疚、抱歉这种话。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;“感受的预防针”的好处正在于，预先照顾到了容易被引爆的情绪，从而让理性的沟通有了接下来延展的空间。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;三种让人不舒服的暗示：想表示关心，在别人听起来却是指手画脚。想表示安慰，在别人听起来反而是漠不关心。想表示委婉礼貌，别人听起来却是暗藏心机。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;求人办事就要一股脑地把想办什么事、有什么地方需要帮忙、事情的来龙去脉是什么、哪些方面是有顾虑的、有没有什么实际的好处等事先想明白、跟人说清楚，才算是尽到了求人帮忙的义务。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;要学会表达自己的情绪，不舒服的时候要直言提出，给对方预警，不要等红灯了在抒发情绪。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;对付别人的暴怒情况：给自己做心理隔离，要保证自己的心理状态。使用同理句型，通过重复对方的现状来发达到理解对方情绪的目的。让发怒的人逐渐平息怒火，关键是让他多一个队友、少一个对手。拦截人生攻击，我有不同意见但不是重点。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;道歉的两个误区：试图淡化，说事情的结果并没有那么糟。试图撇清，说自己要负的责任并没有那么大。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;用自嘲的方法说出自己的弱点，会让敌人再也无法用嘲弄我们弱点的方式来攻击我们。在私人空间里适当暴露自己的弱点，可以很容易地与身边的人建立信任。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;劝导的方式:我们要改变提问的方向，来引导对方从“为什么我不能”转变为“为什么我想要”。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;劝阻朋友犯浑的方法:不要问“为什么”，要问“怎么了”。引导情绪宣泄，你要比你朋友更狠。与其一味阻拦，不如把计划落到实处。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;所有的说服都有一个基本的道理——不要一直强调我需要什么，而是要想办法找出对方需要什么。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;说通年纪大地位高的人:找到长辈能听进去的理由。找到对方感同身受的痛点。给对方一套完整的解决方案。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;鼓励不求上进的人:降低对方对结果的恐惧。用可能性代替目的性。营造愿景而不下指令。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;把“我”换成“我们”，在外部压力面前显示我们是同一阵营。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;所谓的谈判高手也没有什么超能力，他们只是通过一些看似无关痛痒的小问题迂回地得到了他们想要的结果。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;演讲时，别把错误当回儿事。人都是以自我为中心的，就算你在台上讲话，也没谁会像你自己想象的那么关注你。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;就算你一不小心出了差错，也尽量不要当场纠正，因为大多数情况下，台下的听众根本就不知道，就算知道，也不会像你自己那样在意。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;误会才需要澄清，错误只需要承认。任何解释其实都是把错误点撕得越来越大，让本来会被遗忘的地方变得无法忽视了。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;演讲是临场表现的艺术，有三个关键问：第一，迅速赢得观众的信任和好感；第二，争取大多数观众的认同；第三，化解某些场合下观众不想听你说话时的尴尬。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;面对陷阱式提问:增强意识，发现陷阱;斥责刨坑者的动机。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;反忽悠免疫法:关键词脱敏，做到态度免疫。模拟辩论，做到论点免疫。模仿表达，做到影响力免疫。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;p&gt;反驳“认真你就输了”：“我在讲道理，只有你在讲输赢”。“如果讲输赢，那你已经输了”。“嫌我认真，我就要更认真”。&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;反驳“你行你上”：澄清各自的角色。指出对方在逃避。锁定对方的责任。&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;8．&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700; line-height: 22.4px;&quot;&gt;《生活需要仪式感》&lt;br style=&quot;box-sizing: border-box;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; line-height: 22.4px;&quot;&gt;结束日期：2018-09-27&amp;nbsp;&amp;nbsp;&lt;br/&gt;&lt;/span&gt;介绍：&lt;a href=&quot;https://book.douban.com/subject/26865749/&quot; target=&quot;_blank&quot; textvalue=&quot;https://book.douban.com/subject/26865749/&quot;&gt;https://book.douban.com/subject/26948148/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;感想：一本标准的度鸡汤，虽然书中废话很多而且缺少佐证，但是的确也有花说到我们心里了，毕竟我们的生活有的时候就需要一些仪式感。下面还是记录了一些话。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot; list-paddingleft-2&quot; style=&quot;list-style-type: disc;&quot;&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;世上有多少重要的事，想着想着就算了。同样，世上也有多少重要的事，干着干着，也就干成。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我们之所以如此磨蹭，最根本的原因在于我们不够专注。什么都想做，可什么也做不好什么都想尝试，可到最后什么也学不会。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;如何让自己避免因为磨蹭而白白浪费时间呢？第一，提高专注力。第二，细化目标。第三，培养毅力。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;生活里真正的仪式感是什么？是即便一个人时，也要对自己的生活负责，永远不懈怠，不放松，不懒惰；是即便一个人时，也要学会爱自己，也可以买一束鲜花，品一杯美酒，做一顿香甜可口的饭菜慰劳自己。一个会爱自己的人，才有能力爱别人。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;只要你勤奋、主动、积极地去学习，很多事情就可以独立、轻松、漂亮地完成。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;人生路上，可以在很多事情上输很多次，因为你最后总会有机会赢回来，但你最不能输的就是心态，心态输了，你还拿什么去拼？&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;生活品质源于人的内心，源于一种积极向上、乐观自信的生活态度，源于即便生活给了你一副烂牌，可你依旧竭尽全力想把它打好的决心。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;品质生活，不仅需要你在仅有的生活资源里努力过好，还需要你不断地在物质和精神上努力去争取最好的。你没努力试着追求最好的，只能叫作知足常乐，但你若能努力向前进，那就是品质生活。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;你之所以没有成功，或许是因为阅历、经验、火候不足，你可以从别人的成功里发现自己的不足之处并加以改正，但请不要一看见别人成功，就马上盲目地怀疑自己的能力！&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;为什么八小时之外别人还有用不完的时间和精力？因为普通人只是想着如何度过时间，从而消耗精力，而有才能的人是想着如何利用时间，然后积蓄更多的精力。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;每一种选择，每一种经历，都会让你得到些什么，然后再失去些什么。关键要看你最愿意得到些什么。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;完整的人生不是完美的人生，不是无牵无挂的人生，而是历经世事，依旧拿得起放得下的一场经历。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;所谓的迷茫，大多数时候都是因为你想得太多。你只有过好了当下，才有资格谈未来，你也只有放下你那些执念，才能真正走出迷茫期。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;“用心去做”是一种严谨的工作态度，或者说它是一种最起码的职业道德，也是一个人身在职场最基本的要求。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;当你快要坚持不住时，告诉自己再熬一熬。成功没有捷径，唯有努力。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;其实放弃一个人、一件事很容易，可是认定一个人、坚持一件事却很难。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;这看似对梦想放手的行为，看似向失败妥协的行为，不过是为了积蓄更多、更大的力量，再一次向梦想发起冲击。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;当你决定踏出生活的舒适区时，难的是你决定要踏出去的第一步，但更难的是如何坚持下去。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;生活中，真正成功的人往往不是那些偷奸耍滑、偷工减料的人，而是那些脚踏实地、勤勤恳恳去努力并且看起来很傻的人。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;生活总是让我们遍体鳞伤，但到后来，那些受伤的地方一定会变成我们最强壮的地方，也一定会成就那个伤痕累累的你。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;幸福不是靠赚的，它是一种感觉，这种感觉是无论你通过多少功名和成就也赚不来的，它是靠心来感受的。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;凡人为什么会快乐，因为我们仅仅是凡人，所以不顾忌流言蜚语，不顾忌年龄精力，怀一颗赤子之心，去追求所谓的可能与不可能。&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;当你的实力不足以撑起你想要过的生活时，唯有放下纠结，踏实做人，踏实做事，立足当下，安分守己。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;最伤人的往往不是你的拒绝，而是你拒绝后试图做的多余的解释，因为它是那样无力，那样空洞。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;当你因为与他人相处的矛盾和错误而纠结时，你也错过了最好的朋友、同事和伙伴。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;时间真的很宝贵，与他人相处时利落点，爽快点，干脆点，才是相处不累的王道。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;建立好聊天的氛围技巧：第一，用积极的词语代替中性词。第二，全心全意听别人讲话。第三，为了表示在听而不时发问。第四，沟通时，加上别人的最后一句话。第五，当你想要鼓励对方时，不要加上最后那句多余的话。第六，把握好语气。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我们害怕自己的主动换来对方的冷淡，害怕收到对方不温不火的回答，害怕对方其实并不是那么在意我们，所以我们选择沉默。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;每个人的人生只有一次，过好和管好你自己的人生就够了，多想想怎么把日子过得有滋有味，远远比有事没事去操心别人的生活更重要。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;很多时候，人活得太感性、太精致，是会很累的。你要活得认真，但不要较真，你要活得理性，但别太个性。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;别人的人生，再精彩也是别人的。过来人的经验再实用，也是过来人的。而自己的人生，无论走得顺畅还是曲折，终究是自己的。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;一个人越缺少什么，就越会炫耀什么，同样，他们越抬高什么，那就证明他根本就没有到达那个高度和层次。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;当你让自己忙起来，让自己更优秀时，就没有时间去伤感了，忙就是治疗一切心理疾病最简单粗暴且有效的办法。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我需要你给我一种“被需要的感觉”，因为只有让我知道你需要我，我才能不遗余力地以你想要的方式给你最好的爱。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;我们常常陷入这样的误区，在等待中去创造一个好的条件使两个人在一起，可是我们明明就在一起，却要为了一些不重要的事而偏离了我们的初衷。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;牵手需要一辈子，而放手只需要一瞬间，不要轻易去闹腾，最后丢失了真爱。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;对自己好点，因为一辈子太短。对身边的人好点，因为下辈子不一定能够遇见。对爱的人更要好点，不要瞎折腾。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;跟你聊大生意的人，可能是你的合作者，也可能是朋友，但不一定是爱你的人；跟你共同决策招投标底价的人，可能是你的上司，也可能是你的下属，但不一定是爱你的人；而能跟你聊那些无关紧要的小事的人，一定会是爱你的人。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;愿你去谈一场毫无戒备的爱情，而不是以防万一的爱情。愿你在毫无戒备的爱情里找到自己的安全感，而不是在以防万一的爱情里愈发寂寞和孤独。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;真正的亲情，真正的爱，是即便对你说了那些狠话，依然陪在你身边，不离不弃。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;真正的友情，真正的爱，无关乎你是否曾经批评过我，反对过我，而要看当我遭遇苦难时，你是否对我伸出援手。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;真正的爱情，真正的爱，无关乎你对她说过多少情话，承诺过多少约定，而要看你最终是否兑现了诺言，执子之手，与子偕老。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;女人只会对身边最亲近的人撒娇和任性，有时连她都讨厌自己，那个男人却不厌其烦地宠着她，这就是爱情。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;在感情的世界中，在意的常常是情，而不是理。给对方一些空间和余地，这样的相处才会让人觉得轻松自在，无压力，不心累。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px; font-size: 16px; color: #191919; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, 微软雅黑, 宋体, simsun, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px;&quot;&gt;在感情里，一切痛苦大都源于将就。本以为&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px; font-size: 16px; color: #191919; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, 微软雅黑, 宋体, simsun, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px;&quot;&gt;自己能强大到对一个不爱的人强颜欢笑，可最终&lt;/span&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px;&quot;&gt;你还是笑不出来。本以为你可以跟一个不爱的人&lt;/span&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px;&quot;&gt;将就地生活，可最后却发现，心总是那么倔强，&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px; font-size: 16px; color: #191919; font-family: &amp;quot;PingFang SC&amp;quot;, Arial, 微软雅黑, 宋体, simsun, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;span style=&quot;border: 0px; margin: 0px; padding: 0px;&quot;&gt;不由得你选择和逼迫。&lt;/span&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Wed, 30 May 2018 23:39:55 +0800</pubDate></item><item><title>Django中为富文本编辑器（tinyMCE）添加图片上传插入功能</title><link>https://wangtongzhe.cn/post/170.html</link><description>&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;0、前言：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;期初使用的Kendo UI控件中的Editor作为文本编辑器，虽然&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;Editor控件支持上传图片&lt;/span&gt;，但是由于配置的复杂性暂时放弃了（Kendo UI的控件功能太强大了）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; django-ckeditor 的使用方法更侧重于在form.py里定义后绑定到前台使用，我们更期望的是不安装包，直接引入js后使用。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 这里使用的环境为&amp;nbsp;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;python 3.6 +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #FFFFFF; color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif;&quot;&gt;django 2.02，基于tinyMCE控件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;1、引入必要js&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;从 &lt;a href=&quot;https://www.tinymce.com/download/&quot; _src=&quot;https://www.tinymce.com/download/&quot;&gt;https://www.tinymce.com/download/&lt;/a&gt;&amp;nbsp;下载&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;tinyMCE的社区版&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;从&amp;nbsp;&lt;a href=&quot;https://www.tinymce.com/download/language-packages/&quot; _src=&quot;https://www.tinymce.com/download/language-packages/&quot;&gt;https://www.tinymce.com/download/language-packages/&lt;/a&gt;&amp;nbsp;下载汉化文件，放到langs目录中&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;引入项目：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;script&amp;nbsp;type=&amp;quot;text/javascript&amp;quot;&amp;nbsp;src=&amp;quot;{%&amp;nbsp;static&amp;nbsp;&amp;quot;vendor/tinymce/tinymce.min.js&amp;quot;&amp;nbsp;%}&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;p&gt;2、配置settings.py&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;配置Media_root，提供上传图片保存位置：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;MEDIA_URL&amp;nbsp;=&amp;nbsp;&amp;#39;/media/&amp;#39;
MEDIA_ROOT&amp;nbsp;=&amp;nbsp;os.path.join(BASE_DIR,&amp;nbsp;&amp;#39;upload&amp;#39;)&lt;/pre&gt;&lt;p&gt;3、html页面修改&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;创建一个隐藏的文件上传按钮：&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-markup&quot;&gt;&amp;lt;input&amp;nbsp;type=&amp;quot;file&amp;quot;&amp;nbsp;id=&amp;quot;imageFileUpload&amp;quot;&amp;nbsp;style=&amp;quot;display:&amp;nbsp;none&amp;quot;&amp;gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;配置&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;tinyMCE：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-javascript&quot;&gt;tinyMCE.init({
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;selector:&amp;nbsp;&amp;#39;textarea&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;theme:&amp;nbsp;&amp;quot;modern&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plugins:&amp;nbsp;&amp;quot;spellchecker,directionality,paste,image&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file_browser_callback_types:&amp;nbsp;&amp;#39;image&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file_picker_callback:&amp;nbsp;function(callback,&amp;nbsp;value,&amp;nbsp;meta)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(meta.filetype&amp;nbsp;===&amp;nbsp;&amp;#39;image&amp;#39;)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;fileUploadControl&amp;nbsp;=&amp;nbsp;document.getElementById(&amp;quot;imageFileUpload&amp;quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileUploadControl.click();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fileUploadControl.onchange&amp;nbsp;=&amp;nbsp;function&amp;nbsp;()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(fileUploadControl.files.length&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;localFile&amp;nbsp;=&amp;nbsp;fileUploadControl.files[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(/.(gif|jpg|jpeg|png|bmp)$/.test(localFile.name)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;formData&amp;nbsp;=&amp;nbsp;new&amp;nbsp;FormData();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;formData.append(&amp;quot;image&amp;quot;,&amp;nbsp;localFile);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url:&amp;nbsp;&amp;#39;{%&amp;nbsp;url&amp;nbsp;&amp;#39;upload_img&amp;#39;&amp;nbsp;%}&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type:&amp;nbsp;&amp;#39;POST&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data:&amp;nbsp;formData,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cache:&amp;nbsp;false,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;contentType:&amp;nbsp;false,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;processData:&amp;nbsp;false,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success:&amp;nbsp;function&amp;nbsp;(data)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;callback(data,&amp;nbsp;{alt:&amp;nbsp;localFile.name});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error:function&amp;nbsp;()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&amp;#39;图片上传失败&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&amp;#39;只能上传图片&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;else&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&amp;#39;请选择图片上传&amp;#39;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;convert_urls&amp;nbsp;:false,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;language:&amp;nbsp;&amp;quot;zh_CN&amp;quot;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image_advtab:&amp;nbsp;true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;paste_data_images:true
});&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里需要说明的是 convert_urls 参数默认为true，会使得我们的相对路径在保存后自动转换，导致下次打开后就不能显示图片了。callback方法第一个参数是设置返回的图片路径。&lt;/p&gt;&lt;p&gt;4、view.py 修改&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里主要是加一个方法接收上传的文件。&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-python&quot;&gt;from&amp;nbsp;django.conf&amp;nbsp;import&amp;nbsp;settings
from&amp;nbsp;django.views.decorators.csrf&amp;nbsp;import&amp;nbsp;csrf_exempt
from&amp;nbsp;PIL&amp;nbsp;import&amp;nbsp;Image

@csrf_exempt
def&amp;nbsp;report_upload(request):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file&amp;nbsp;=&amp;nbsp;request.FILES[&amp;#39;image&amp;#39;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;img&amp;nbsp;=&amp;nbsp;Image.open(file)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;file_name&amp;nbsp;=&amp;nbsp;str(uuid.uuid1()).replace(&amp;quot;-&amp;quot;,&amp;nbsp;&amp;quot;&amp;quot;)&amp;nbsp;+&amp;nbsp;os.path.splitext(file.name)[1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;img.save(os.path.join(settings.MEDIA_ROOT,&amp;nbsp;&amp;quot;imgs&amp;quot;,&amp;nbsp;file_name),&amp;nbsp;img.format)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;HttpResponse(settings.MEDIA_URL&amp;nbsp;+&amp;nbsp;&amp;#39;imgs/{0}&amp;#39;.format(file_name))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;Exception:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;HttpResponse(&amp;quot;error&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;except&amp;nbsp;Exception:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;HttpResponse(&amp;quot;error&amp;quot;)&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;这里要说明的是使用settings.MEDIA_ROOT中的参数作为保存路径，使用Image对象可以对图片做一些处理后再保存。&lt;/p&gt;&lt;p&gt;5。结果&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;点击编辑器的插入图片按钮，再点击地址栏后面的图标，选择文件就可以上传了，结果测试成功。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/a46adcf73b8d7a50.jpg&quot; width=&quot;1080&quot; height=&quot;352&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 1080px; height: 352px;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;img src=&quot;https://wangtongzhe.cn/zb_users/upload/2019/05/a5976c90e1f040f6.jpg&quot; width=&quot;672&quot; height=&quot;495&quot; border=&quot;0&quot; vspace=&quot;0&quot; alt=&quot;&quot; title=&quot;&quot; style=&quot;width: 672px; height: 495px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Hiragino Sans GB&amp;quot;, &amp;quot;WenQuanYi Micro Hei&amp;quot;, &amp;quot;Microsoft Yahei&amp;quot;, sans-serif; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Fri, 09 Mar 2018 14:47:38 +0800</pubDate></item></channel></rss>