如何在django里上传csv文件并进行入库处理

运维平台导入数据这一功能实在是太重要了,我敢说在没有建自己的cmdb平台前,大多数公司管理服务器信息肯定是表格,用表格最麻烦的就是有点更新就得每个人发一份,这样大家信息才能统一,很不方便,终于有一天受不了了,搞了一个服务器信息管理平台,那面临的第一个问题不是说功能好或不不好,而是怎么才能把表里的数据导入到数据库中,所以你说重要不重要,当然如果你就喜欢自己手工录入(找虐的感觉),这个咱也不能说啥,各有所好嘛,那具体如何录的最快,这个不在我们今天的讨论范围,我只讨论如何自动导入。

提到导入,那一般有二个方法,一个是在前端上传完后存储在服务器上的某个目录里,然后读取文件进行分析处理。

另[……]

继续阅读

Django ORM if you already know SQL

If you are migrating to Django from another MVC framework, chances are you already know SQL.

In this post, I will be illustrating how to use Django ORM by drawing analogies to equivalent SQL statements. Connecting a new topic to your existing knowledge will help you learn to use the ORM faster.[……]

继续阅读

让我们来做个django小项目之二

上篇内容我们算是来了一个开场,创建了我们的项目,最后把数据库也建立完成了,这篇我们主要完成后台数据入库的部分,根据我们之前的思路,如果已经能实时获得每个站点性能信息了,如果能将每次获得信息插入到数据库中,这个就完成了我们的入库部分,这里说一下我们的数据库操作部分,要操作数据库,首先我们要跟数据库建立连接,然后进行常规的CRUD操作,操作完毕后再关闭数据库连接,这是一个基本流程,所以为了提高数据库的操作速度,我们可以把一些常用的操作封装成一个类,以下是我门数据库操作的类代码:

在这个类中我们先定义了__init__方法,指定了[……]

继续阅读

站点性能监控demo

上篇我们简单介绍了pycurl的基本使用,在组后我们留了几个问题需要去解决,因为最终我们要实现的是一个页面版的展示所有站点性能的demo, 那这篇就是正式开始我们这个小项目,废话不多说,首先我们创建我们的项目,在命令行模式下输入:

然后进入web_monitor目录中,创建一个app.

创建完成 后我们的目录结构是这样的:

因为数据要需要入库的,所以第一步先设计我们的表结构,也就是我们的[……]

继续阅读

python+pycurl检查网站性能指标

对于一个网站运维人员来说,一个网站的性能好坏是大家非常关心的内容,我们知道衡量一个网站的好好多方面,但对运维人员来说站点的性能指标是我们比较关注的内容,从用户角度来说,最直观的感受就是用户户输入网址后站点内容打开速度的快慢,那从一个用户发起请求到服务器,然后服务器响应提供给数据给客户端,了解http协议的小伙伴应该知道,这中间要经过多个步骤才能实现,所以说一个站点如果出现访问速度上的问题,要从整条链路上去查原因而不能只看某一方面,访问示意图如下:

client-server-architecture

在这个访问过程中我们会关注以下几个指标:

  • DNS解析所消耗时间
  • 从建立连接到准备传输所消耗的时间
  • 从建立连接到传输开始[……]

    继续阅读

pip安装pycurl报错解决

 

错误1:Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-install-u_NBeS/pycurl/

解决:

pip install –upgrade

pip install pycurl==7.43.0

 

错误2:运行时报错:

 [……]

继续阅读

用Data-pipeline模式将nginx日志存储到elasticsearch中(续)

接上篇的内容,这篇我们要解决第二个问题,就是如何将我们转换完成的json数据发送到es中去,上篇提到了要存储到es中,我们要使用kafka来做消息队列,实现发布和订阅消息流模式,因为涉及kafka内容,所以我们先说一下Kafka的一些基本知识,然后再看代码不然一是一头雾水。

kafka介绍:

1、什么是kafka?

2、kafka特性

3、kafka解决了什么问题?

4、ka[……]

继续阅读

用Data-pipeline模式将nginx日志存储到elasticsearch中(1)

做运维的小伙伴应该都知道nginx日志的重要性,一般出现访问问题,我们可能第一时间要去看日志去分析问题,但除了协助我们排查问题外,如果对nginx日志进一步分析可以得到更有用的数据,例如可以监控某站点的http状态码、PV,UV情况,request_time和response_time等,如果辅助其它工具进一步分析可以预防一些安全问题,比如同一个IP的访问某页面超出了限制,我们可以设置策略发现后可以自动拒绝有危险的IP访问,这也是我们经常说的防刷功能,今天要跟大家分享的是如何将nginx日志存储到es中,存储的目的当时是为了更好的分析它,大家都知道,如果要存储到es中,数据必须是json格式的[……]

继续阅读

sudo 防止su -i 切到root下

sudo在日常运维中我们经常使用的工具,可以给普通用户授予root用户权限执行某些特殊操作,但这里也有个问题,在设置完后,普通用户通过su -i 仍然可以切到root用户下,那如何防止呢,我们就从基本的先看看如何设置sudo用户:

新建文件webadminsudo 写入:

webadmin ALL=(ALL) NOPASSWD:ALL,!/usr/bin/passwd,!/bin/bash,!/bin/sh,!/bin/tcsh,!/bin/su

看我配置文件内容,sudo -i  默认是调用bash命令切换到root的shell下获取root权限的所有只要禁用bash就可以[……]

继续阅读

python+mongodb操作方法全(附源码和图形客户端Mongodb-compass)

这篇介绍mongodb和Python使用, 从基本的安装说起,先熟练mongodb的基本操作,然后通过python实现数据插入、查询,以及mongoengine使用,最后是图形化界面连接mongodb数据库,我们从安装开始:

Mongodb 安装

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz

tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz

mv mongodb-linux-x86_64-rhel62-3.6.4 /us[……]

继续阅读

selenium + chrome爬虫环境搭建

在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo

内容如下:

yum -y install google-chrome-stable –nogpgcheck

安装后查看安装目录:

which google-chrome-stable

which google-chrome

查看版本号:

google-chrome –version

如果想看更多内容就用

google-chrome –help #会列出所有参数

然而在使用s[……]

继续阅读

windows下安装selenium报错解决

在windows下安装selenium 反复安装了几次,都报这个错误:

File “c:\users\jibingchuan\appdata\local\programs\python\python36-32\lib\conte
xtlib.py”, line 99, in __exit__
self.gen.throw(type, value, traceback)
File “c:\users\jibingchuan\appdata\local\programs\python\python36-32\lib\site-
packages\pip\_vendor\urllib3[……]

继续阅读

tomcat杀进程方法

有时候tomcat停不掉,需要租如下修改:

在catalina.sh文件的PRGDIR=dirname "$PRG"行后面添加

if [ -z “$CATALINA_PID” ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
cat $CATALINA_PID
fi
在shutdown.sh文件的最后一行 stop后面添加
-force

在bin目录创建存id的文件
touch CATALINA_PID[……]

继续阅读

Elk企业级日志平台详细部署+监控插件

1、操作系统优化:

/etc/sysctl.conf里增加:

vm.max_map_count=262144

/etc/security/limits.conf  增加:

*                soft   nofile          65536

*                hard   nofile          65536

*                soft   nproc           16384

*                hard   nproc           32768

/etc/s[……]

继续阅读

glusterfs安装部署

 

准备三台机器, 安装centos7系统。

配置Host:

 

192.168.137.131 gluster1

192.168.137.132 gluster2

192.168.137.133 gluster3

 

建议防火墙都先关闭,部署完成后再加上然后在看整个集群状态,如果正常,就可以了。

 

防火墙添加:iptables -I INPUT -p tcp –dport 24007 -j ACCEPT

 

 

三台上都安装:

yum insta[……]

继续阅读

python升级后pip不能用解决方法

 

升级完python2.7后pip不可用,还是老的2.6下的,需要升级Pip到2.7下

按这个方式安装pip:

 

 

官网文档:

https://pip.pypa.io/en/stable/installing/

然后:

# whereis pip

pip: /usr/bin/pip /usr/bin/pip2.6 /usr/local/bin/pip2.7 /usr/local/[……]

继续阅读

mongodb连接

 

  1. 下载mongodb压缩包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

mongodb-linux-x86_64-3.0.6.tgz

  1. 解压

$ tar zxvf mongodb-linux-x86_64-3.0.6.tgz

  1. 进入bin目录

$ cd mongodb-linux-x86_64-3.0.6/bin

  1. 连接远程数据库

$ mongo 192.168.1.200:27017/database  -u user  -p[……]

继续阅读

kafka培训PPT

kafka-20180314

kafka常用操作:

查看topic列表:

1.kafka-topics.sh –list –zookeeper  10.1.14.39:2181,10.1.14.40:2181,10.1.14.41:2181

创建topic:

2.kafka-topics.sh –create –zookeeper 10.1.14.39:2181,10.1.14.40:2181,10.1.14.41:2181 –replication-factor 3 –partitions 1 –topic my-replicated-to[……]

继续阅读

腾讯云cos挂载问题

挂载cos报错如下:

cosfs: /usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by cosfs)
cosfs: /usr/lib64/libstdc++.so.6: version 
GLIBCXX_3.4.15′ not found (required by cosfs)

解决如下:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

find / -name “libstdc++.so*”

cp /soft/gcc-4.[……]

继续阅读

前端基础-CSS-2

上篇我们介绍了css的的由来和编写语法,并展示了一个基本的例子,这篇继续向大家展示一些例子来说明如何使用css来美化我们的页面展示,css包含非常多的样式设置,在这里我会把最基础和常用的样式设置展示给大家,上篇我们了解了div这个块元素的使用,因为div内部可以写其它标签,但如果我们像上篇一样设置,整个块里的元素都会生效,那如果我只想设置div中某个标签呢,或者我们想通过div的id或class来设置样式,另外我们常见的就是表单,那如何给表单设置样式,以及如何给一个超链接设置样式,这就是今天我们要讲的内容, 首先还是跟之前一样,我们先给出我们基本的html代码和截图:
[crayon-5e5[……]

继续阅读

前端基础-CSS-1

前两篇我们简单说了下html基本知识,从这篇开始我们谈一下css内容,这篇主要还是从最基本的内容说起,让大家对css有个初步认识,掌握了css,在后续理解bootstrap的样式就比较容易了,对于了解css的小伙伴来说可能知道怎么用,但为什么要有css?它的出现解决了什么问题?这个我想可能大多数人没有思考过,接下来我们就谈一下这个问题, 因为在最早期的网站中,网页的样式都写在Html页面里,这样的问题就是会让html页面特别复杂,在越来越堆积后,如果再改某个地方会非常困难,说白了就是自己写的代码都没法维护了,那这时候呢为解决这个问题,w3c就发明了css,让html只负责页面结构内容,所有的表[……]

继续阅读

前端基础-HTML5-2

这篇继续我们html的学习之旅,这篇主要说一下表单,因为表单在web中很常见,比如我们常见的要登陆或注册某个站点,填写个人一些信息,这都需要表单来完成,表单主要就是用于搜集不同类型的用户输入,在后续的开发过程中不免我们要让用户通过输入某些数据来决定程序的执行或者基本的登陆等,假设我们现在有一个任务要完成一个网站用户的注册表单,需要用户提供用户名称,密码,性别,邮箱,如果是一个电商类网站可能还要有一个提供支付方式,那这段基本的HTML的代码看起来是这样的:

表单的元素是<form>,表单包含的元素有<inpu[……]

继续阅读

前端基础-HTML5-1

准备了一周,这周开工了,我们从基本的HTML说起,这部分内容我不会像html教程一样一个一个标签的讲解, 那样的话就html就写到明年了,所以这部分只说最有用的,把这部分快速的过一遍,主要精力还是集中放到后面的内容,那既然要介绍HTML5,我们先从基本概念开始,什么是HTML5?

HTML5 是下一代 HTML 标准。

HTML , HTML 4.01的上一个版本诞生于 1999 年。自从那以后,Web 世界已经经历了巨变。

HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。

说白点html5就是html4的升级版,增加了很多特性,在移[……]

继续阅读

关于Django学习的计划

各位小伙伴好,上周刚说到要开始我们的django学习之旅了,谁知上周公司业务调整,临时安排了很多工作,搞得天天加班到11点(夜里), 回到家累成狗,连按电脑开关的力气都没有了,  虽然上周身体比较累,但脑袋却没闲着,就构思了后续的学习计划, 因为吧写脚本跟写web平台差别还是非常大的,因为脚本都是单一性的任务或功能,但要做web运维平台它是一个综合性技术的体现,比如最基本的html你得懂,像html的基本的table, form、列表等在实际开发中用的非常的多,如果这个都不熟练,那越往后学难度会越大,在了解了html的基础上,css你要懂一点吧,不然列表菜单放左边还是放右边,站点导航栏怎么设置[……]

继续阅读

python基础17-并发编程(2)

上篇我们介绍了Python的多线程模式,也了解了在python中有GIL这么个东西,所以cpu密集型的程序在python中是无法实现真正并发的,因为实际执行的还的单个线程,可现在的服务器都至少是16核,那岂不浪费了, 所以如果我们想要重分利用cpu资源,我们就需要在Python中采用多进程模式,就是用进程的方式实现并发,在Python下实现多进行时用multiprocessing模块来实现,这个模块用法跟threading.Thread非常类似,但不同的时它没有GIL锁,可以在多核CPU机器上来实现真正的并发执行,关于进程线程概念就不多说了,上篇已经全部介绍了,这篇就直接就直接上代码了,代码是[……]

继续阅读

python基础16-并发编程(1)

从这篇开始我们学习python并发编程的内容,之所以把并发编程放到最后去说,是因为并发编程涉及很多概念,还用到了类,跟之前的基础知识不同,不是几句话或者几行代码就能说清楚的,在我们正式写代码前我们先梳理下基本概念,然后再进入实际代码环节,因为要NB,不但要会写代码,而且还能理解代码背后的意义,if  赞同:   我们先来了解下进程和线程的历史:

我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度。 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器[……]

继续阅读

python基础15-面向对象编程(3)

上篇我们说了类的基本概念,这篇我们谈谈类的一个很重要的概念-继承, 在工作中使用类继承非常常见,当我们编写一个类时并非每次都要从头实现一个类,如果你要实现的类在方法或属性另一个类里已经有了,这时候可以通过继承来自动 获得这个类的所有属性和方法,这个类就叫父类,继承父类的类我们叫子类,通过类的继承,可以让我们减少我们同一段代码要输入好几次的情况,Python允许子类继承多个父类,这种特性我们叫多重继承,这个不是python语言特性,c++也是一样,接下来让我们了解下如何通过代码的方式实现类的继承。

我们还用我们上次定义的Car类来说明继承关系, 代码如下:
[crayon-5e587cb[……]

继续阅读

Sublime text3 安装和配置

pycharm 实在是太大了,就启动就需要至少1G内存,无奈电脑配置太低,打算换一个编辑器了,今天安装Sublime text3,早就听说名声在外了,不多说,上手:

1、下载 ,http://www.sublimetext.com/3

我下的最新版本3143版,是个exe文件,直接双击安装即可,安装完后是未注册版本,未注册版就是会定时弹出来一个框让你输入授权码去购买,功能没啥问题,可以去购买,如果没钱就只能百度了。

2、安装完配置,第一个包是安装包管理功能,

打开view–>Show console,在底部输入如下代码:
[crayon-5e587cbea76[……]

继续阅读