content

python读取txt文件以空行作为数据的切分处理

吃可爱长大的小学妹 提交于 2020-02-20 14:06:38
先举个例子,如下test.txt文件数据,需要提取每条数据的title和content, 单独保存到文件中: spiderTime:{'num':'12223'} title:中国保险1xxx summary: 请在xxx content: 当事人11sfdffghfhgfjjd tag:1 spiderTime:{'num':'12224'} title:中国保险2xxx summary: 请在xxx content: 当事人22sfdfffdffghfjd tag:2 spiderTime:{'num':'12225'} title:中国保险3xxx summary: 请在xxx content: 当事人33sfdffggghfjd tag:3 首先发现,数据是以空行作为分割点,所以,可以以空行拆分数据,做处理,具体代码如下: import re# 创建一个空列表用于后续保存每次空行分割的一条完整数据li = []with open('test.txt','r',encoding='utf8') as f: while True: cont = f.readline().replace('\n','') if not cont: # 如果为空行,则表示取完一次数据,可以执行操作; if not li: # 如果列表也为空,则表示数据读完了,结束循环 break title =

Vue中的$Bus使用

感情迁移 提交于 2020-02-19 12:18:51
Vue中的$Bus使用 将Bus单独抽离成一个文件 Bus.js import Vue from 'vue'; let Bus = new Vue(); export default Bus; 创建两个兄弟组建 C2.vue <template> <view> <h1>c2</h1> </view> </template> <script> // 引入Bus import Bus from '@/util/Bus'; export default { // 在载入后的生命周期中 mounted () { // 给bug绑定一个log事件,等待兄弟组件出发 Bus.$on('log', content => { // 输出兄弟组件传递的内容 console.log(content) }); } } </script> C1.vue <template> <view> <button @tap="tapBus">c1</button> </view> </template> <script> import Bus from '@/util/Bus'; export default { methods:{ tapBus(){ // 点击按钮触发log事件,传递120过去,会输出到控制台 Bus.$emit('log', 120) } } } </script> index.vue

代码发布项目(一)——实现服务端主动给客户端推送消息(websocket)

余生长醉 提交于 2020-02-19 11:02:24
截至目前为止,我们所接触到的项目内部都是基于HTTP协议实现通信的:http协议是无链接无状态,客户端发送请求,服务端返回响应,服务端不会自动朝客户端发送消息。 有三种方式实现服务端主动向客户端推送消息: 1.轮询 2.长轮询 3.websocket 轮询 效率低、基本不用 让浏览器定时朝后端发送请求(通过ajax向后端偷偷发送数据),比如每隔五秒钟发一次请求,那么你的数据延迟就可能会高达五秒 不足之处 数据延迟 消耗资源过大 请求次数太多 长轮询 兼容性好,一般大公司都会考虑使用它 # 队列+ajax 服务端给每个客户端建立队列,让浏览器通过ajax朝服务端要数据,去各自的队列中获取 如果没有数据则会阻塞但是不会一直阻塞,比如阻塞你30秒,还没有数据则返回,然后让客户端浏览器再次发送请求数据的请求。 让浏览器内部偷偷的朝服务端获取数据,客户端第一次来的时候会给每一个客户端创建一个独有的队列,之后客户端请求数据都是从自己对应的队列中索要,由于队列没有数据的时候,get方法会阻塞一旦有数据又会立刻运行,所以我们利用timeout参数加异常捕获的方式来做到基本零延迟 相对于轮询 基本是没有消息延迟的 请求次数降低了很多 # web版本的qq和微信基本上用的都是这么一个逻辑 基于ajax及队列实现的长轮询的功能(django简易版的聊天室) """ 1.首页自定义用户唯一表示

复大官网总结

戏子无情 提交于 2020-02-18 08:27:23
一、使用到的技术 html5 css3 javascript jquery bootstrap 第三方jquery插件 @media实现响应式布局 二、根据设计稿设计内容的宽度   PC端设计稿宽度是1920px的,这是在设计的时候根据电脑的浏览器分辨率来定的。         页面主体宽度(内容宽度)设置为1200px,1200px是一个比较适合PC端显示器浏览的安全内容宽度,保证在宽度大于1200px分辨率的设备下浏览页面不会出现横向滚动条,页面有banner地方的宽度就设置为100%,设置百分比的好处是可以根据屏幕分辨率的大小自动缩放。   移动端设计稿宽度为750px,750px是iphone6的物理像素,也叫屏幕分辨率。移动端设计稿是按照设备的物理像素所给。 物理像素:     顾名思义,就是设备屏幕上的实际像素,也就是说这个手机被出厂造出来的时候,这个屏幕上有多少个像素点,它的物理像素就是多少; 设备独立像素:     也叫做逻辑像素(对于前端来说,和css像素是一样的),这个不同的设备是不一样的,在viewport为ideal-viewport模式时, 如iphone6此时的viewport为375px,代表着我们在css中写375px就可以达到全屏的效果; 三、布局编写 3.1、页面整体结构 1 <!DOCTYPE html> 2 <html> 3 <head> 4

angularJs学习笔记-路由

半城伤御伤魂 提交于 2020-02-18 07:19:45
1.angular路由介绍   angular路由功能是一个纯前端的解决方案,与我们熟悉的后台路由不太一样。   后台路由,通过不同的 url 会路由到不同的控制器 (controller) 上,再渲染(render)到 html。   angular前端路由,需要提前对指定的 ng-app 定义路由规则 (routeProvider), 通过不同的 url 告诉 ng-app 加载哪个 html ,再渲染到 ng-app 的视图 ng-view 中。 2.安装   引入 angular-route.js就可以了 <script src="../build/angular.min.js" charset="utf-8"></script> <script src="angular-route.min.js" charset="utf-8"></script> 3.在模块中声明注入对ngRoute的依赖 var app = angular.moudule('app',['ngRoute']);    4.定义路由表   两种方法 :   (1)when(path,route)       path : string类型,表示该路由规则所匹配的路径,它将与地址栏内容($location.path)值进行匹配。 如果需要匹配参数,可以写成 /views/:name,参数保存在

dede首页调用栏目内容_{dede:field.content/}首页调用

十年热恋 提交于 2020-02-17 16:06:46
如何将已经做成单页的栏目内容调用到首页来。   常用的需要调到首页来的单页内容,比如公司简介、联系我们等内容,我们在首页可能都要进行展现。通过常规的方式,包括查阅dede官方论坛资料,都找不到比较合适的答案。今天我们就提供两种方式进行调用。 一、我们知道,单页内容的模板调用标签是 {dede:field.content/} ,经过试验,在首页使用   {dede:channelartlist }    {dede:field.content/}   {/dede:channelartlist }   进行调用,即可顺利的调出相关的数据。   但是出现问题,这种调用只能用于只有一个单页的情况,如果系统中含有两个或者多个以上的单页,该调用会将所有的单页内容堆叠显示出来。即使加type的ID进行限定也没有什么作用。所以这种方法并不太适合 二、我们还可以使用SQL进行调用,这样以来灵活性大大提高了,而且可以调用任意一个栏目ID的单页内容。   {dede:sql sql='Select content from dede_arctype where id=1'}    [field:content/]   {/dede:sql}   想调用那个栏目,只需要修改栏目的ID 就可以了;但需要注意一点的是"dede_arctype"表名要根据你安装系统时的表名来填,不然也调用不出来

在MySQL字段中使用逗号分隔符

若如初见. 提交于 2020-02-17 07:09:58
转载自: https://joyqi.com/information-tech/use-comma-in-mysql-columns.html 大多数开发者应该都遇到过在mysql字段中存储逗号分割字符串的经历,无论这些被分割的字段代表的是id还是tag,这个字段都应该具有如下几个共性。 被分割的字段一定是有限而且数量较少的,我们不可能在一个字符串中存储无限多个字符 这个字段所属的表与这个字段关联的表,一定是一对多的关系 比如下面这个表结构所代表的content与tag这两个对象 mysql> SELECT * FROM content; +----+------+ | id | tags | +----+------+ | 1 | 1,2 | | 2 | 2,3 | +----+------+ 2 rows in set (0.01 sec) mysql> SELECT * FROM tag; +----+-------+ | id | name | +----+-------+ | 1 | php | | 2 | mysql | | 3 | java | +----+-------+ 3 rows in set (0.00 sec) 这些原则问题,相信大家在开发过程中已经很熟悉了。 但是你在使用这种方法来处理实际问题时,内心一定还是有些许忐忑

前端需要知道的安全知识

点点圈 提交于 2020-02-15 15:33:08
1. XSS(跨站脚本) 黑客往网页里注入恶意脚本代码 当用户访问时获取到包含恶意代码的网页 通过恶意脚本,黑客可以获取和控制用户信息 1.1 反射型(非持久型)XSS 诱导用户点击恶意链接来造成一次性攻击 黑客把带有恶意脚本代码参数的URL地址发送给用户 用户点击此链接 服务器端获取请求参数并且直接使用,服务器反射回结果页面 反射型XSS攻击是一次性的,必须要通过用户点击链接才能发起 一些浏览器如铬其内置了一些XSS过滤器,可以防止大部分反射型XSS攻击 反射型XSS其实就是服务器没有对恶意的用户输入进行安全处理就直接反射响应内容,导致恶意代码在浏览器中执行的一种XSS漏洞 const express = require('express'); const fs = require('fs'); const path = require('path'); const app = express(); const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(express.static(path.resolve(__dirname, 'public'))); //http:/

学习整理与细化(2)——HTML VS XHTML

萝らか妹 提交于 2020-02-14 23:57:24
<html> <head>//文档头 <title>webpage title</title> </head> <body>//文档体 webpage content </body> </html> 以上是HTML的文档基本结构 <DOCTYPE html>//声明文档类型 <html lang="en"> <head>//文档头 <meta charset="UTF-8"> <title>webage title</title> </head> <body>//文档体 weboage content </body> </html> 以上是XHTML的文档基本结构 二、XHTML(表示一开始看完后就直接用XHTML写代码) 1)XHTML的声明文档类型 ①格式: <!DOCTYPE element-name DTD-type DTD-name DTD-url> 其中:!DOCTYPE 表示开始声明DTD, 必须为大写 ;     element-name 指定DTD的根元素名称(如,XHTML表示图XHTML为根控制标记;     DTD-type 有两个值:PUBLIC(公用)|STSTEM(私人);     DTD-name 有三个值用来指定DTD的文件名称:                      1."-//W3C//DTD XHTML 1.0 Transitional/

webapp中的meta

試著忘記壹切 提交于 2020-02-14 23:52:10
<!--开发后删除--> <meta http-equiv="Pragma" name="no-store" /> <!--必须联网才可以访问--> <meta http-equiv="Cache-Control" name="no-store" /> <!--浏览器缓存--> <meta http-equiv="refresh" content="3" /> <!--在3秒钟后刷新--> <!--开发后删除--> <meta http-equiv="window-target" content="_top" /> <!--防止别人在框架里调用自己的页面--> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> <meta name="HandheldFriendly" content="true" /> <!--搜索引擎抓取--> <meta name="robots" content="index,follow"/> <meta name ="viewport" content ="initial-scale=1.0,maximum-scale=1,user-scalable=no"> <!--是否启用 WebApp 全屏模式,删除苹果默认的工具栏和菜单栏--> <meta name="apple