GithubHelp home page GithubHelp logo

blog's People

Contributors

mkdir1 avatar

Stargazers

 avatar

Watchers

 avatar

blog's Issues

urlencode&urldecode

urlencode&urldecode

当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至'/'做一下编码转换。

urlencode

urllib库里面有个urlencode函数,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串,比如:

>>> from urllib import urlencode
>>> data = {
...     'a': 'test',
...     'name': '魔兽'
... }
>>> print urlencode(data)
a=test&name=%C4%A7%CA%DE

如果只想对一个字符串进行urlencode转换,怎么办?urllib提供另外一个函数:quote()

>>> from urllib import quote
>>> quote('魔兽')
'%C4%A7%CA%DE'

urldecode

当urlencode之后的字符串传递过来之后,接受完毕就要解码了——urldecode。urllib提供了unquote()这个函数,可没有urldecode()!

>>> from urllib import unquote
>>> unquote('%C4%A7%CA%DE')
'\xc4\xa7\xca\xde'
>>> print unquote('%C4%A7%CA%DE')
魔兽

讨论

在做urldecode的时候,看unquote()这个函数的输出,是对应中文在gbk下的编码,在对比一下quote()的结果不难发现,所谓的urlencode就是把字符串转车gbk编码,然后把\x替换成%。如果你的终端是utf8编码的,那么要把结果再转成utf8输出,否则就乱码。
可以根据实际情况,自定义或者重写urlencode()、urldecode()等函数。

转自大牛

svn:remains in conflict

好久没用svn了,今天出现这个问题,svn:remains in conflict,真是无法解决
其实我原因还是没找到
svn remove --force yourfilename
svn resolve --accept=working yourfilename
svn commit -m ""

再svn up

javascript-判断平台类型对应修改相应元素

判断平台类型

调用的接口

javacript中有一个var av = navigator.appVersion.toLowerCase() || ''; 这里可以判断对应的平台

修改对应的元素

每个id对应的元素,用下面的方法:

  var id = document.getElementById('id');
  var href = id.href;
  var text = id.innerHTML;

如果还有其它元素,也一样

示例代码

<html>
<body>
<div id="an">
        <a id="desktopClient" target="_blank" hidefocus="true" href="http://githbu.com" title="test">desktop</a>
    </div>
    <script >
    (function (){
     var av = navigator.appVersion.toLowerCase() || '';
     var is = {};
     var dictClientEle = document.getElementById('desktopClient');
     var href = dictClientEle.href;
     var text = dictClientEle.innerHTML;
     is.mac = /mac/i.test(av);
     is.win = /win/i.test(av);
     is.ipad = /ipad/i.test(av);
     is.linux = /linux/i.test(av);
     is.iphone = /iphone/i.test(av);
     is.android = /android/i.test(av);
     if (is.win) {
     href = "http://163.com";
     text = "windows"
     } else if (is.mac) {
     if (is.iphone) {
     href = "http://163.com";
     text = "iphone"
     } else if (is.ipad) {
     href = "http://163.com";
     text = "ipad"
     } else {
         href = "http://163.com";
         text = "Mac"
     }
     } else if (is.linux) {
         href = "http://163.com";
         text = "Linux"
     } else if (is.android) {
         href =  "http://163.com";
         text = "Android"
     }
     dictClientEle.href = href;
     dictClientEle.innerHTML = text;
    })();
    </script>
</body>
</html>

总结

  • 1.获取平台信息
  • 2.修改元素属性

阿里云项目部署相关运维

阿里云部署运维

系统

用的是centos,这个系统不是很熟悉

    1. mysql相关小点:
    • 1.1 外网访问权限
      ·GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '0' WITH GRANT OPTION;·
      ·flush privileges;·
    • 1.2 初始密码设置
      如果开始没有密码,直接·mysql -uroot·就可以,默认root密码为空
      或者·mysqladmin -u USER -p password PASSWORD· 改密码
    1. flask
      ·pip install -U flask-cors
      ·pip install flask·后不包括上面的那个包
    1. nginx 403
      解决方法:
    • 3.1 首先找到配置文件 /etc/ngnix/ngnix.cnf中root位置
      修改root中文件的属性
    • 3.2 修改 /etc/ngnix/ngnix.cnf中前面的user为root,一般是ngnix
    • 3.3 一些小命令
      ·ngnix -s stop·
      ·ngnix· 启动
  1. mariadb 这个是centos上替换mysql的一个工具,接口与mysql一样,只是需要更改驱动

删除.svn

问题

本来是想把svn项目转化成git,但.svn目录删除有点麻烦
后来才发现,一句shell语句的事

解决

find . -type d -name ".svn"|xargs rm -rf

mysql中文乱码的问题

背景

之前处理mysql没有涉及到中文,故对此无所用心.今于此耗时逾一日,算是小有收获

问题

mysql上字段存储中文

解决过程中出现的问题

-1. 在`python源文件头添加

reload(sys)                                                                                                                                                                  
sys.setdefaultencoding('utf8')

或听信网上一种方法:

File "getAnswer.py", line 12, in <module>
    sys.setdefaultencoding('gb2313')
LookupError: unknown encoding: gb2313
  1. 字符encode或decode后存储到mysql中
    结果乱码
  2. 在存储操作前调用一个set字符的操作

以上前徒劳,最后解决方案:

 self.cursor.execute("DROP TABLE IF EXISTS answer")
               create_answer_sql = '''CREATE TABLE answer(
              question_id varchar(30) NOT NULL,                                                                                                                                
               question text(300) NOT NULL,
           answer_id varchar(30) NOT NULL,
               answer text(3000) NOT NULL
   )DEFAULT CHARSET=utf8'''

即在创建数据表时,设置为utf8

原因

因为mysql默认的编码是latin1,所以,当是ascii码时,是没问题的,当字符是utf8时,在mysql中无论如何是无法正确显示成中文的,只能是把table的编码也设置成utf8

还有就是,当python文件首项设置成'utf8'时,得到的就是这个编码,就可以直接存储到mysql中

查询表的charset

show create table answer

Vmware提示该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

错误提示:

已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。

如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用。

(1) 确认 BIOS/固件设置中启用了 Intel VT-x 并禁用了“可信执行”。

(2) 如果这两项 BIOS/固件设置有一项已更改,请重新启动主机。

(3) 如果您在安装 VMware Workstation之后从未重新启动主机,请重新启动。

(4) 将主机的BIOS固件更新至最新版本。

按照上述提示

解决办法:

  • bios中将虚拟化设置为可用。Intel Virtualization Technology设置为enable
  • 如果安装了360安全卫士,禁用针对64位cpu的核晶防护。
  • 管理员身份运行

解决

shell随机取文件中的行

shell随机

如何取一文本文件中随机行

方式

  • shuf -n5 main.txt
    这种要安装shuf命令
  • sort -R main.txt | head -5
awk -vN=5 -vC="`wc -l file`" 'BEGIN{srand();while(n<N){i=int(rand()*C+1);if(!(i in a)){a[i]++;n++}}}NR in a' file
while read line;do echo "$line $RANDOM";done < main.txt | sort -k2,2n| awk 'NR<=5{print $1}'

Spring-Bean

bean之间的关系,即协作 (或者称依赖)。

Bean的命名

每个bean都有一个或多个id(或称之为标识符或名称,在术语上可以理解成一回事),这些id在当前IoC容器中必须唯一。
当然也可以为每个bean定义一个name,但是并不是必须的,如果没有指定,那么容器将为其生成一个惟一的name。对于不指定name属性的原因我们会在后面介绍(比如内部bean就不需要)。

Bean命名的约定

bean的命名采用标准的Java命名约定,即小写字母开头,首字母大写间隔的命名方式。如accountManager、 accountService等等。
对bean采用统一的命名约定将会使配置更加简单易懂。而且在使用Spring AOP,这种简单的命名方式将会令你受益匪浅。

Bean的别名

一个Bean要提供多个名称,可以通过alias属性来加以指定 ,示例如下:
<alias name="fromName" alias="toName"/>

容器如何实例化Bean

当采用XML描述配置元数据时,将通过元素的class属性来指定实例化对象的类型。class属性主要有两种用途:在大多数情况下,容器将直接通过 反射调 用指定类的构造器来创建bean(这有点等类似于在Java代码中使用new操作符);在极少数情况下,容器将调用类的静态工厂方法来创建bean实例,class属性将用来指定实际具有静态工厂方法的类(至于调用静态工厂方法创建的对象类型是当前class还是其他的class则无关紧要)。
用构造器来实例化Bean ,前面的实例就是

使用静态工厂方法实例化

采用静态工厂方法创建bean时,除了需要指定class属性外,还需要通过factory-method属性来指定创建bean实例的工厂方法,示例如下:

<bean id="exampleBean"
      class="examples.ExampleBean2"
      factory-method="createInstance"/>

使用实例工厂方法实例化

使用此机制,class属性必须为空,而factory-bean属性必须指定为当前(或其祖先)容器中包含工厂方法的bean的名称,而该工厂bean的工厂方法本身必须通过factory-method属性来设定,并且这个方法不能是静态的,示例如下:
<bean id="exampleBean" factory-bean="myFactoryBean" factory-method="createInstance"/>

windows安装mysql

windows安装msyql

下载

mysql-5.7.11-winx64这个版本下面解压后没有data文件夹,安装时会找不到
即:

mysqld -nt remove
mysqld -nt install
需要copy其它版本mysql-advanced-5.6.27-winx64下面的data文件夹

安装后

安装如果不出问题,就提示成功了.
启动:

net start mysql
即可,这里需要管理员运行cmd下进行

或者在service下面图形化操作,配置文件.cnf也在这里

配置root密码

第一次登录不需要密码,直接enter

mysql -uroot
进入之后
mysql -u root

  mysql> use mysql;
  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
  mysql> FLUSH PRIVILEGES;

ok

Spring-在idea下开发helloworld程序

Spring在idea下的搭建

示例程序

package spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloController{
public static void main(String[] args) {
    //ApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"spring-config.xml"});
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
    HelloApi api = (HelloApi)context.getBean("helloBean");
    String s = api.helloSpring(3);
    System.out.println("the s="+s);
}
}

这里注意几点:

  • 1.ClassPathXmlApplicationConttext()的路径放在了resource/下面,但这个要在设置中设置为resource文件类型
    1. 涉及到的类有两项,在新建项目的时候,创建一个Spring项目,就会下载相关的包

BeanFactory和ApplicationContext
org.springframework.beans及org.springframework.context包是Spring IoC容器的基础。BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。 ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与Spring AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext)。

xml

Resource resource = new FileSystemResource("beans.xml");  
BeanFactory factory = new XmlBeanFactory(resource);  

2

ClassPathResource resource = new ClassPathResource("beans.xml");  
BeanFactory factory = new XmlBeanFactory(resource);  
ApplicationContext context = new ClassPathXmlApplicationContext(  
        new String[] {"applicationContext.xml", "applicationContext-part2.xml"});  
// of course, an ApplicationContext is just a BeanFactory  
BeanFactory factory = (BeanFactory) context;  

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.