python总结

1、mysql与MongoDB区别:

1.关系型数据库通过外键关联来建立表与表之间的关系

2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

非关系数据库查询一条数据,是一个数组,关系型数据库查询出来是对象。

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL(not only sql 非关系型数据库)的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。

 

    以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简单:Mysql在性能不错的情况下,有着开源优势。Mysql的事务性与高性能是我们主要考虑的。后来,由于项目要用到用户系统,即会有大量的用户数据进行交互--海量存储,Mysql的读写速度会有一点瓶颈,于是我们就想到了最近发展很强势的Nosql。在Nosql早期的memcache的发展下,又出现了很多非关系型数据库,比如redis,mongodb。经过一段时间的测试,redis与mongodb的读写速度确实比Mysql有着很明显的优势。mongodb的写入速度大约2.5W/次每秒。
 
    mongodb以BSON结构(二进制)进行存储,对海量数据存储有着很明显的优势。下面是Mongodb与Mysql的操作命令的对比。

作用

MySQL

MongoDB

服务器守护进程

mysqld

mongod

客户端工具

mysql

mongo

逻辑备份工具

mysqldump

mongodump

逻辑还原工具

mysql

mongorestore

数据导出工具

mysqldump

mongoexport

数据导入工具

source

mongoimport

新建用户并授权

grant all on *.*
to username@'localhost'
 
identified by 'passwd';

db.addUser("user","psw")
db.auth("user","psw")

显示库列表

show databases;

show dbs

进去库

use dbname;

use dbname

显示表列表

show tables;

show collections

查询主从状态

show slave status;

rs.status

创建库

create database name;

无需单独创建,直接use进去

创建表

create table tname(id int);

无需单独创建,直接插入数据

删除表

drop table tname;

db.tname.drop()

删除库

drop database dbname;

首先进去该库,db.dropDatabase()

插入记录

insert into tname(id) value(2);

db.tname.insert({id:2})

删除记录

delete from tname where id=2;

db.tname.remove({id:2})

修改/更新记录

update tname set id=3
where id=2;

db.tname.update({id:2},
{$set:{id:3}},false,true)

查询所有记录

select * from tname;

db.tname.find()

查询所有列

select id from tname;

db.tname.find({},{id:1})

条件查询

select * from tname where id=2;

db.tname.find({id:2})

条件查询

select * from tname where id < 2;

db.tname.find({id:{$lt:2}})

条件查询

select * from tname where id >=2;

db.tname.find({id:{$gte:2}})

条件查询

select * from tname where id=2
and name='steve';

db.tname.find({id:2,
name:'steve'})

条件查询

select * from tname where id=2
or name='steve';

db.tname.find($or:[{id:2},
{name:'steve'}])

条件查询

select * from tname limit 1;

db.tname.findOne()

模糊查询

select * from tname where name
like "%ste%";

db.tname.find({name:/ste/})

模糊查询

select * from tname where name
like "ste%";

db.tname.find({name:/^ste/})

获取表记录数

select count(id) from tname;

db.tname.count()

获取有条件
的记录数

select count(id) from tname
where id=2;

db.tname.find({id:2}).count()

查询时去掉
重复值

select distinct(last_name)
from tname;

db.tname.distinct('last_name')

正排序查询

select *from tname order by id;

db.tname.find().sort({id:1})

逆排序查询

select *from tname
order by id desc;

db.tname.find().sort({id:-1})

取存储路径

explain select * from tname
where id=3;

db.tname.find({id=3}).explain()

特别要注意的是:mongodb插入多个字段语法
> db.user.insert({id:1,name:'steve',sex:'male'})  正确
> db.user.insert({id:2},{name:'bear'},{sex:'female'})  错误

 2、Django、Tornado、Flask各自的优势   框架

Django:Django无socket,django的目的是简便,快速开发,并遵循MVC设计,多个组件可以很方便的以“插件”形式服务于整个框架,django有许多功能强大的第三方插件。django具有很强的可扩展性。

Tornado:它是非阻塞式服务器,而且速度相当快,得力于其 非阻塞的方式和对epoll的运用,Future对象,缺点:没有session,需要自定制

 Flask:是一个微型的web框架,配合SQLALchemy来使用,jinja2模板, werkzeug接口       



3、单例:

class SingleSimple():
    instance=None#类属性
    def __new__(cls, *args, **kwargs):#限制生成对象,c创建对象
        if cls.instance==None:
            cls.instance=object.__new__(cls)#生成新对象
        return cls.instance
    def __init__(self,name):#必须调用,必须加参;
        print('正在初始化方法...')
        self.name=name
s=SingleSimple('abc')
ss=SingleSimple('dfjf')
print(s.name)
print(ss.name)
 
  
 
  
 
  
二、电脑配置
1、操作系统----系统软件
Windows操作系统:win7、win8、XP
Unix操作系统:FreeBSD、Sun Solaris   一般用于银行、电信、移动、核心业务等高端领域,是收费的,闭源的,很贵
Linux:Ret Hat(红帽)、Ubuntu(游戏3D)、Fedora(社区版)  服务器基本都是Linux系统,维护。

    优点:稳定性、安全性、企业应用成本低、开放源代码、可移植性强

    应用:网络服务器,高可用群集、云网络,智能手机、平板电脑、嵌入式设备,大规模运算、影视渲染。。。

    发行版:red  hat企业版、fedora社区版、centos社区版(免费,和红帽相似)

Linux构成:Linux内核和外围程序(shell、gnome。。)
 
  
三、http/ftp/tcp协议

    http改为https:加密的      无状态的,可以访问不回复,基于tcp的。

    udp:无状态的,不可靠,跟发短信一样

    tcp:有状态的,可靠的,长连接,跟打电话一样。

    ftp:文件传输协议。

    pop3/smtp:简单邮件协议

   四、网络七层协议   OSI

    1.应用层:

    域名:DNS     www.baidu.com     对应一个ip地址。

    ip地址:最大255。

    (127.0.0.1是本地回环地址或localhost)      cmd---> ipconfig查IP地址电脑能否上网:ping  ip地址

    A类:1.0.0.0~126.255.255.255  

    B类:128.0.0.0~191.255.255.255    例:129.23.23.21     网络ip:129.23.0.0     本机ip:0.0.23.21

    C类:192.0.0.0~233.255.255.255    都是局域网192.168.    例:192.23.23.21   网络ip:192.23.23.0     本机ip:0.0.0.21    

默认网关: 192.23.23.1    子网掩码:255.255.255.0

    D类:用于组播

    子网掩码:255.255.255.0   C类ip地址

    默认网关:路由器

网络七层模型(OSI参考模型):

应用层:网络服务与最终用户的一个接口。    应用软件。

表示层:合并一层

会话层:合并一层

传输层:socket    udp、tcp                         端口号:每一个应用程序都有一个端口号,windows下有上万个端口号,病毒跟着端口号进来。     

网络层:逻辑寻址,寻路径    ip    路由器

数据链路层:寻找硬件地址,MAC    交换机

物理层:物理连接   网线


你可能感兴趣的:(python总结)