1、单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接

#!usr/bin/env python
# -*- coding:utf-8 -*-
class ConnecttionPool:
__instance = None
def __init__(self):
self.ip = '222.133.177.67'
self.port = ''
self.username = 'odoo'
self.password = '' self.con_list = [1,2,3,4,5,6,7,8,9,10]
@staticmethod
def get_instance(): #创建实例的方法
if ConnecttionPool.__instance:
return ConnecttionPool.__instance
else:
ConnecttionPool.__instance = ConnecttionPool()
return ConnecttionPool.__instance
def get_connection(self):
#获得连接
import random
r = self.con_list[random.randrange(1,10)]
return r for i in range(10):
pool = ConnecttionPool.get_instance()
print('去连接池',pool,'获得一个连接')
r = pool.get_connection()
print('获得的连接是:',r)

单例模式

2、简单的服务器请求框架

代码需要在2.7版本下运行

#!usr/bin/env python
# -*- coding:utf-8 -*-
from wsgiref.simple_server import make_server def RunServer(environ,start_response):
start_response(status='200 OK',headers=[('Content-Type','text/html')])
url = environ['PATH_INFO'] #url取的是访问时端口号后面的地址
return '谢谢你的访问!' #可以读取html文件 if __name__ == '__main__':
httpd = make_server('',8000,RunServer)
print('Server Http on 8000......')
httpd.serve_forever() #循环监听访问,当有访问时,返回RunServer函数的返回值

网站服务器监听代码

3、服务器网站;且模拟多人访问创建一个连接实例,并且随机取连接线路

#!usr/bin/env python
# -*- coding:utf-8 -*-
class ConnectionPool:
ins = None
def __init__(self):
self.ip = '202.102.154.3'
self.port = ''
self.username = 'odoo'
self.password = ''
self.connections = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def get_connection(self):
import random
i = random.randrange(0,10)
return self.connections[i]
@staticmethod
def get_instance():
if ConnectionPool.ins:
return ConnectionPool.ins
else:
re = ConnectionPool()
ConnectionPool.ins = re
return re from wsgiref.simple_server import make_server def RunServer(environ,start_response):
start_response(status='200 OK',headers=[('Content-Type','text/html')])
url = environ['PATH_INFO'] #url取的是访问时端口号后面的地址
pool = ConnectionPool.get_instance()
print(pool)
cnn = pool.get_connection()
print(cnn)
return_text = '谢谢你的访问!%s-%s' %(pool,cnn)
return return_text #可以读取html文件 if __name__ == '__main__':
httpd = make_server('',8000,RunServer)
print('Server Http on 8000......')
httpd.serve_forever() #循环监听访问,当有访问时,返回RunServer函数的返回值

模拟网站多人登陆单实例

【python之路33】开发模式单例模式及简单的服务器请求框架原理的更多相关文章

  1. Python之路,Day18 - 开发一个WEB聊天来撩妹吧

    Python之路,Day18 - 开发一个WEB聊天来撩妹吧   本节内容: 项目实战:开发一个WEB聊天室 功能需求: 用户可以与好友一对一聊天 可以搜索.添加某人为好友 用户可以搜索和添加群 每个 ...

  2. C#开发模式——单例模式

    一.单例模式简介 单例模式是为保证一个对象,在程序运行的任何时刻只有一个实例存在,我们把这种实现方式称之为“单例模式”. 二.单例模式的核心 单例类只有一个实例存在 单例类提供一个全局访问点 单例类通 ...

  3. JSP开发模式1(简单注册功能)

    ———————————————————————————————————————————————— import java.util.regex.Matcher;import java.util.reg ...

  4. KoaHub平台基于Node.js开发的Koa的简单包装到请求库的类似接口

    co-request co-request promisify wrapper for request co-request Simple wrapper to the request library ...

  5. webpack+react+es6开发模式

    一.前言 实习了两个月,把在公司用到的前端开发模式做个简单的整理.公司里前端开发模式webpack+react+redux+es6,这里去掉了redux. webpack, react, redux等 ...

  6. struts2的DevMode(开发模式)模式

    本文转自:http://blog.csdn.net/q1054261752/article/details/48687119 在实际应用开发或者是产品部署的时候,对应着两种模式: ① 开发模式(dev ...

  7. SSH开发模式——Struts2(第一小节)

    在制定了学习计划的学习过程中,我感觉学习还是很有效率的.很短的时间内,我便学习完了JavaWeb的连接池.DbUtils框架及其一些工具类的使用. 学无止境,学习这些知识还远远不够,所以,在接下来的时 ...

  8. 大前端快闪二:react开发模式 一键启动多个服务

    最近全权负责了一个前后端分离的web项目,前端使用create-react-app, 后端使用golang做的api服务. npx create-react-app my-app cd my-app ...

  9. Python之路,Day20 - 分布式监控系统开发

    Python之路,Day20 - 分布式监控系统开发   本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个 ...

随机推荐

  1. 18-6-calsslist

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Maven使用初步

    一.安装: 1.下载:http://maven.apache.org/download.cgi 2.设置环境变量 1.创建"M2_HOME",值为Maven安装路径(如:D:\Ja ...

  3. springboot中activeMQ消息队列的引入与使用(发送短信)

    1.引入pom依赖 <!--activemq--><dependency> <groupId>org.springframework.boot</groupI ...

  4. 阿里巴巴飞天大数据架构体系与Hadoop生态系统

    很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...

  5. JDK源码阅读--Hashtable

    public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable ...

  6. HTML 排版标记

    <p></p> : 表示一个段落 常用属性 : align : 水平对齐方式  取值 :left  center right 和Word文档一样 : 段落有空行  <br ...

  7. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)   Django基础七之 ...

  8. 如何学习AxureRP Axure学习方法

    从作者最初接触的5.5版本,到5.6版本,到后来6.0的多个迭代版本,直到现在的6.5版本,AxureRP每次的版本升级都伴随着新功能的增 加,也解决了原型设计上的一些难题.这也从另一个方面诠释了“学 ...

  9. 从三层架构到Spring框架

    首先是软件的应用分层架构 标准三层架构: 1:数据访问层:实现了数据的持久化 2:业务逻辑层:对逻辑的实现及处理,实际上不可能在表示层对数据不做任何处理,但是尽可能的将逻辑分为一层 3:表示层:数据的 ...

  10. python随机生成图片

    #-*-coding:utf-8-*- import tensorflow as tf import numpy as np import cv2 image = tf.random_uniform( ...