作者归档:xinlu
控制模态窗口的两种方法
第一种:针对类属性,进行遍历所有项,并为其添上click属性。
$(“.stopall”).each(function(index){
$(this).click(function(e) {
$(‘#msgtxt-dialog’).modal()
stop_all_spider($(e.currentTarget))
});
})
$(“.startnew”).each(function(index){
$(this).click(function(e) {
var target = $(e.currentTarget)
var host = target.parent().parent().children(“td:nth-child(1)”).html();
var prj = target.parent().parent().children(“td:nth-child(2)”).html();
var spider = target.parent().parent().children(“td:nth-child(3)”).html();
var nodeParent = $(“#startnew-dialog”);
var label1 = nodeParent.find(“#host”);
var label2 = nodeParent.find(“#project”);
label1.html(host);
label2.html(prj);
$(‘#startnew-dialog’).modal()
});
})
第二种:
<!– 按钮触发模态框 –>
<button class=”btn btn-primary btn-lg” data-toggle=”modal”
data-target=”#myModal”>
开始演示模态框
</button>
<!– 模态框(Modal) –>
<div class=”modal fade” id=”myModal” tabindex=”-1″ role=”dialog”
aria-labelledby=”myModalLabel” aria-hidden=”true”>
<div class=”modal-dialog”>
<div class=”modal-content”>
<div class=”modal-header”>
<button type=”button” class=”close”
data-dismiss=”modal” aria-hidden=”true”>
×
</button>
<h4 class=”modal-title” id=”myModalLabel”>
模态框(Modal)标题
</h4>
</div>
<div class=”modal-body”>
在这里添加一些文本
</div>
<div class=”modal-footer”>
<button type=”button” class=”btn btn-default”
data-dismiss=”modal”>关闭
</button>
<button type=”button” class=”btn btn-primary”>
提交更改
</button>
</div>
</div><!– /.modal-content –>
</div><!– /.modal –>
getJSON函数实现自定义参数
$(document).ready(get_xxxx_list);
function get_xxxx_list(){
{% autoescape off %}
svcs ={{servers}};
{% endautoescape %}
for (var i=0; i< svcs.length; i++)
{
var svc = svcs[i]
var url = ‘http://’ + svc + ‘/xxxx.json’;
$.getJSON(url, {}, handle_xxxx_list(svc));
}
}
function handle_xxxx_list(server){
return function(json, status){
if(status == “success”){
for(var prj in json.d3all){
var objprj = json.d3all[prj]
for(var i = 0; i < objprj.length; i++){
var spider = objprj[i]
alert(server + prj + spider)
}
}
}else{
}
}
}
Javascript & Jquery 遍历Json
/*
author: liulf
function:
var __db_cpcj=vCpcj;
var __db_cp=vCp;
var vCp={“cppage”:[
{“cpdh”:”A01000101″,”page”:”1″,”ca”:”1309-36-0″,”mc”:”硫铁矿“,”ename”:”Pyrite”,”bm”:”黄铁矿“},
{“cpdh”:”A01000201″,”page”:”1″,”ca”:”1309-36-0″,”mc”:”硫精砂“,”ename”:”Pyrite concentrate;Sulfur concentrate”,”bm”:””},
{“cpdh”:”A01000202″,”page”:”1″,”ca”:”1309-36-0″,”mc”:”硫精矿粉“,”ename”:
“Powdered pyrite concentrate;Pyrites concentrate,powder;Sulfur concentrate,powder”,”bm”:”硫精矿“},
{“cpdh”:”A02000101″,”page”:”1″,”ca”:””,”mc”:”磷矿石“,”ename”:”Phosphorus ore”,”bm”:””},
{“cpdh”:”A02000111″,”page”:”2″,”ca”:””,”mc”:”磷矿砂“,”ename”:”Phosphorite grit”,”bm”:””},
{“cpdh”:”A02000201″,”page”:”2″,”ca”:””,”mc”:”磷矿粉“,”ename”:”Phosphate rock powder”,”bm”:””},
{“cpdh”:”A03000101″,”page”:”2″,”ca”:”12447-04-0″,”mc”:”硼矿石“,”ename”:”Ascharite;Boric ore”,”bm”:”硼镁矿“},
{“cpdh”:”A04000101″,”page”:”2″,”ca”:””,”mc”:”钾长石“,”ename”:”Potash feldspar;Potassium feldspars”,”bm”:””},
{“cpdh”:”A04000201″,”page”:”2″,”ca”:”12003-63-3″,”mc”:”长石粉“,”ename”:”Feldspar powder”,”bm”:””},
{“cpdh”:”A04000301″,”page”:”2″,”ca”:””,”mc”:”光卤石“,”ename”:”Carnallite”,”bm”:””}
]}
*/
function ObjSearch()
{
this.kw = ”;
this.searchCpcj= function()
{
$(vCpcj).each(function(){
});
}
this.searchCp = function()
{
// var json = eval(vCp.cppage)
// for(var i=0; i<json.length; i++)
// {
// alert(json[i].cpdh+” ” + json[i].page)
// break;
// }
$.each(vCp.cppage,function(index,content){
document.write(‘<div>’+content.cpdh+'</div><br />’);
});
}
}
——————————————–js———————————
如何遍历jsonc对象?其实方法很简单。
比如有如下json对象:
var obj ={“name”:”冯娟“,”password”:”123456″,”department”:”技术部“,”sex”:”女“,”old”:30};
遍历方法:
for(var p in obj)
{
str = str+obj[p]+’,’;
return str;
}
Django关闭模板的autoescape功能
在django的模板中,如果你输出一些特殊字符如”<> “‘”即HTML中会出现的特殊标签及冒号引号等,则它会自动把相关符号进行转义,导致与你所需不致,故在必要的时候需要关闭它。
svcs2是我们需要通过模板输出svcs的效果,由于autoescape的作用影响,会输出如下
需要对autoescape的功能进行关闭,如下图。
终于符合预期输出了。
{% autoescape off %}
svcs2 = {{ servers }};
{% endautoescape %}
Linux解决中文乱码和安装五笔输入法
sudo yum remove ibus --会将所有的输入法删除
安装ibus,ibus-table
sudo yum install ibus ibus-table --这样只会安装ibus的输入框架
sudo yum install ibus-table-wubi
yum install “@Chinese Support”
安装中文语言支持包
yum -y groupinstall chinese-support解决中文显示问题
yum -y install Deployment_Guide-zh-* lv-* stardict*
yum -y install scim*安装中文输入法
yum install scim
yum install scim-pinyin
yum install “@Chinese Support” centos6.6
重启,然后在编辑窗口按ctrl+space键即可呼出输入法。
Pycurl在低版本centos环境安装实例全过程分享
安装pycurl,提示libcurl的库文件太旧,无法安装。
下载libcurl进行编译,http://curl.haxx.se/download/curl-7.40.0.tar.gz
http://curl.haxx.se/download.html
经编译并安装libcurl库后,使用pip install pycurl,则完成相关包了。
————————————————
测试pycurl是否安装成功,提示错误:
import pycurl
undefined symbol: curl_multi_socket_action
这是由于使用了错误的连接库而产生的,错误的连接库有如下几种可能。
1.系统存在多个相应的同名链接库,导致使用错误的链接库。
2.编译参数设置不对,导致编译时没有把必须的组件编译进动态库中。
3.所依赖的库,依赖了更多的其它项,这些项缺失或丢失。
解决这问题的直接方法是检查目标程序或动态库所有依赖项是否符合预期。检查连接库的命令是:
ldd (library dynamic detect)
pycurl.so问题,指向了一个libcurl.so.3的版本,故是错误版本。正确的链接版本是libcurl.so.4如下图所示。
解决问题的办法,如果按照传统的以下四种办法是不一定能解决的,这是因为如下办法是只适用于标准的configure+make方式编译和链接的,如下图所示:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’
为了避免后续有提示libcurl.so.4找不到,从而加载失败的情况,需要把/usr/local/lib动态库加入到/etc/ld.so.conf中。按以下方法
1./sbin/ldconfig
2.echo ‘/usr/local/lib’ >> /etc/ld.so.conf
3./sbin/ldconfig更新连接缓存信息。
而python的包管理工具,是可以调用gcc编译程序,那是否包的setup.py指名了编译详细办法呢???
分析setup.py的出错信息
指向setup.py源码100行位置,在其附近我们找到了关键线索PYCURL_CURL_CONFIG。
在百度上搜索该关键环境变量,我们知道它是指向一个叫curl-config的文件,在linux标准编译环境内,xxx-config是由configure命令生成的目标程序的配置文件,常包括程序安装位置以及头文件和连接库的信息,它在调用make install命令后,它应该会与执行程序存放在一起,故在源代码目标可找到该配置文件,如下图所示:
开始设置环境变量并编译:
export PYCURL_CURL_CONFIG=/home/apps/curl-7.19.7/curl-config
pip install pycurl
仍然出现如下悲剧错误:
我们进一步分析错误原因,显然这个文件是找到但因权限不足而不允许执行,这原因仍然要看setup.py源码。如下图:
它是把这个PYCURL_CURL_CONFIG指导向的文件,当作一个可执行程序进行操作,并传入一个参数:–version,所以应该是配置文件本身属性问题。
这说明它不是一个执行文件,因为curl-config是一段脚本程序,我们为它添上可执行文件的属性。
chmod a+x curl-config
已经可以返回版本的结果了,再次执行如下命令。
export PYCURL_CURL_CONFIG=/home/apps/curl-7.19.7/curl-config
pip install pycurl
终于顺利完成。
全过程最终使用的源码,是根据centos6.5的软件源提示而从网上下载的,这样做的主要目的自认为与centos6.5一致,可避名因为包的不兼容而产生种种希奇古怪的问题。
pycurl-7.19.5.1.tar.gzhttps://pypi.python.org/packages/source/p/pycurl/pycurl-7.19.5.1.tar.gz#md5=f44cd54256d7a643ab7b16e3f409b26b
curl-7.19.7.tar.gzhttp://curl.haxx.se/download/archeology/curl-7.19.7.tar.gz
scrapyd的调试
关于scrapyd的调试,真有一种是”踏破铁鞋无觅处,得来全不费功夫的感觉”,现记录全过程。
第一种方法:
第二种方法:
from twisted.scripts.twistd import run
from os.path import join, dirname
from sys import argv
import scrapyd
argv[1:1] = [‘-n’, ‘-y’, join(dirname(scrapyd.__file__), ‘txapp.py’)]
run()
然后调试该main.py,即得结果。
开源的网站漏洞扫描器
Golismero
官网:http://www.golismero.com/
Golismero是一款开源的Web扫描器,它不但自带不少的安全测试工具,而且还可导入分析市面流行的扫描工具的结果,比如Openvas,Wfuzz, SQLMap, DNS recon等,并自动分析。Golismero采用插件形式的框架结构,由纯python编写,并集成了许多开源的安全工具,可以运行在Windows,Linux, BSD,OS X等系统上,几乎没有系统依赖性,唯一的要求就是python的版本不低于2.7,其官网是:http://golismero-project.com。
Centos开发环境安装快速命令
快捷命令(Centos7环境特别建议该方式,因为gcc是4.8.5,gdb是7.6.1):
yum groupinstall ‘Development Tools’
你也可以这样:
yum -y install firefox gcc gcc-c++ autoconf automake gdb git perl svn libtool flex bison pkgconfig vim subversion git lrzsz openssl curl wget curl p7zip mysql openssl-devel mysql-server mysql-devel zlib-devel curl-devel
yum install -y python-devel libxml2-devel libxslt-devel python-lxml sqlite-devel libffi-devel openssl-devel mysql-server mysql-devel zlib-devel curl-devel