当前位置: 首页 > news >正文

做网站 服务器wordpress变量

做网站 服务器,wordpress变量,网站友情链接怎么样做,做网站 找风投网络编程 网络程序出现的比互联网要早很多#xff0c;实现方式主要依靠网络上不同主机间进程的通信#xff0c;通信协议最重要的是TCP/IP协议。在这两个协议基础上还有很多更高级的协议#xff0c;包括HTTP、SMTP等。要进行两个主机间的网络通信#xff0c;必须四个元素实现方式主要依靠网络上不同主机间进程的通信通信协议最重要的是TCP/IP协议。在这两个协议基础上还有很多更高级的协议包括HTTP、SMTP等。要进行两个主机间的网络通信必须四个元素源地址、源端口号、目的地址、目的端口号。 TCP编程 Socket是网络编程一个抽象概念通常我们用一个Socket表示“打开了一个网络链接”而打开一个Socket需要知道目标计算机的IP地址和端口号再指定协议类型即可。示例代码实现了一个服务端和客户端服务端将客户端发送的内容回显给客户端一切都是在命令行下执行。图形界面原理一样。 import socket import threading import time#服务端代码 s socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((127.0.0.1, 9999))#开始监听端口参数表示最大连接数 s.listen(5) print(Waiting for connection...)def tcplink(sock, addr):print(Accept new connection from %s:%s... % addr)sock.send(bWelcome!)while True:data sock.recv(1024)time.sleep(1)if not data or data.decode(utf-8) exit:breaksock.send((Hello, %s! % data.decode(utf-8)).encode(utf-8))sock.close()print(Connection from %s:%s closed. % addr)while True:sock, addr s.accept()t threading.Thread(targettcplink, args(sock, addr))t.start() 客户端代码 import sockets socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect((127.0.0.1, 9999)) # 接收欢迎消息: print(s.recv(1024).decode(utf-8)) for data in [bMichael, bTracy, bSarah]:# 发送数据:s.send(data)print(s.recv(1024).decode(utf-8)) s.send(bexit) s.close() UDP编程 TCP建立了双方之间的可靠连接通信双方都可以用流的方式发送数据。UDP则是面相无连接的协议使用UDP协议时不需要建立连接只需要知道对方的IP和端口号就可以直接发送数据包。但是对方是否能够收到就不知道了。它的优点是速度快。 服务端代码 import socket import threading import times socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口: s.bind((127.0.0.1, 9999))print(Bind UDP on 9999...) while True:# 接收数据:data, addr s.recvfrom(1024)print(Received from %s:%s. % addr)s.sendto(bHello, %s! % data, addr) 客户端代码 import socket import threading import times socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for data in [bMichael, bTracy, bSarah]:# 发送数据:s.sendto(data, (127.0.0.1, 9999))# 接收数据:print(s.recv(1024).decode(utf-8)) s.close() 做了一个简单的对比可见UDP的传输方式比TCP快了很多。 Web开发 随着互联网流行起来的B/S模式是Web开发的主要内容包括客户端展现HTML、CSS、JAVASCRIPT以及服务端处理静态内容、CGI、动态语言。Python提供了很多Web开发框架能够为我们提供Web开发的快速支持。 开始WEB开发的话我觉得最好从HTML入手然后了解HTTP协议这些熟悉之后逐步熟悉CSS、Javascript然后了结合后台编程语言完成自己编写网站的小目标。 笔者是从PHP学习开始Web开发的接触Python的Web开发还沿用PHP的思路会产生一些迷惑。PHP从产生之初就是作为Web开发语言而设计的PHP是作为Apache的模块来进行请求处理和响应的与HTTP相关的很多基础处理都是由Apache完成的mod_php模块与其对接生成类似$_POST$_GET的对象供PHP脚本使用。 Python有所不同Python是作为一种通用脚本处理语言产生的所以它能够完成的工作更多也可以作为Web开发语言只是方式不同。如果Python作为服务端脚本语言可以分几个层次如果Python负责处理所有的事务包括TCP链接、逻辑处理、内容响应Python也是可以胜任的但是这样开发要做的工作就非常多如果Python只是负责生成HTML文档前端使用Apache等Pyhon只需要负责文档解析。实现这个层次是因为Python提供了WSGI接口Web Server Gateway Interface这时Python的焦点放在接口处理和Web逻辑处理上。第三个层次就是使用Python的Web框架现在有很多成熟的框架包括Django、Flask等。这样Python就主要关注Web处理包括URL以及对应的函数处理。 先看一下使用WSGI接口编写简单的Web程序返回一个简单的文字。 # server.py # 从wsgiref模块导入: from wsgiref.simple_server import make_server # 导入我们自己编写的application函数: from hello import application# 创建一个服务器IP地址为空端口是8000处理函数是application: httpd make_server(, 8000, application) print(Serving HTTP on port 8000...) # 开始监听HTTP请求: httpd.serve_forever() # hello.pydef application(environ, start_response):start_response(200 OK, [(Content-Type, text/html)])body h1Hello, %s!/h1 % (environ[PATH_INFO][1:] or web)return [body.encode(utf-8)] 使用WSGI的方式来进行Web开发需要花很多精力来处理请求和响应的对应关系这个时候可以引入框架。这里以Web.py框架为例。 import weburls (/(.*), hello ) app web.application(urls, globals())class hello: def GET(self, name):if not name:name Worldreturn Hello, name !if __name__ __main__:app.run() 由此可见使用框架后我们可以将精力放在URL和对应的处理函数上。 正则表达式 正则表达式说起来是一个可以讲很久的话题这里简单说一下 Python 中的使用。 re模块 Python提供re模块包含所有正则表达式的功能。建议所有处理正则的部分都使用r开头这样就不需要考虑转义的问题。 import rere.match(r^\d{3}\-\d{3,8}$, 010-12345) _sre.SRE_Match object; span(0, 9), match010-12345re.match(r^\d{3}\-\d{3,8}$, 010 12345)如果匹配则返回一个Match对象没找到则返回None。 切分字符串 可以使用正则的切分字符串 re.split(r\s, a b c) [a, b, ‘c] 分组 正则表达式中提供了()进行匹配结果的分组如果正则表达式中定义了组就可以使用Match对象的group()方法提取子串。group(0)表示的是原始字符串。 t 19:05:30m re.match(r^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$, t)m.groups() (19, 05, 30) 常用内置模块 datetime datetime是Python处理日期和时间的标准库。日期操作中常用的包括获取当前日志、创建一个日期、计算两个日期的差值、判断日期的类型、日期与时间戳的相互转换、字符串与日期类型的相互转换这些基本上看看例子就可以掌握。 在计算机中时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC00:00时区的时刻称为epoch time记为01970年以前的时间timestamp为负数当前时间就是相对于epoch time的秒数称为timestamp。timestamp 与时区没有关系datetime与时区有关系。 字符串%Y-%m-%d %H:%M:%S规定了日期和时间部分的格式。详细的说明请参考Python文档。字符串转换为日期类型后默认是没有带时区信息的。 from datetime import datetime, timedelta, timezone# 获取当前时间 now datetime.now() print(now)# 创建一个指定的日期 wt datetime(2017,4,12,14,5,15) print(wt)# 将日期类型转换为时间戳 print( wt.timestamp() )# 将时间戳转换为日期加了一个小时 print( datetime.fromtimestamp(wt.timestamp() 60*60 ) )# 字符串转换为日期类型 cday datetime.strptime(2017-4-12 18:19:59, %Y-%m-%d %H:%M:%S) print(cday)# 将日期类型格式化为字符串显示 print(now.strftime(%A, %B, %d, %H:%m))# 日期类型也可以直接使用 - 进行运算引入timedelta可以计算差值 print(now - timedelta(days1)) print(now timedelta(days1, hours2)) collections collections 是 Python 内建的一个集合模块提供了许多有用的集合类。包括 namedtuple、deque tuple 可以表示不变集合但是不方便从名称上看出用途。通过使用namedtuple函数可以创建一个自定义的tuple对象规定了tuple的个数并且可以通过属性来访问元素。 使用 list 存储数据时按索引访问元素很快但是插入和删除元素就很慢了因为list是线性存储数据量大的时候插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表适合用于队列和栈。deque除了实现list的append()和pop()外还支持appendleft()和popleft()这样就可以非常高效地往头部添加或删除元素。 参考资料 1、Python Web Server Gateway Interface v1.0 2、Webpy 框架
http://www.yutouwan.com/news/458803/

相关文章:

  • 网站运营网站建设网站建设与推广 范文
  • 站长工具端口查询黄石专业网站建设推广
  • 福鼎网站开发营销策略案例
  • 做传销网站违法运动鞋网站的建设风格
  • php 网站建设流程采购管理系统的功能有哪些
  • 网站标题如何写济南哪个公司做网站好
  • 门户网站开发维护合同徐州智能建站怎么做
  • 集约化网站建设管理网站建设制作官网
  • 网站建设结算方式用什么软件做网站最简单 最方便
  • 造价工程建设协会网站钢材原材料东莞网站建设
  • 做网站哪家佛山专业网站建设公司哪家好
  • 免费建站自己的网址人力资源网
  • 自己做的网站怎么连接域名对电子政务做技术支持的网站
  • 广州网站建设智能 乐云践新万网网站价格
  • 论文中引用网站中页面设计常用的字体颜色有
  • 网站建设工程师是做什么的ps怎样做网站设计
  • wordpress怎么做网站南京网站备案
  • 建设网站文献阿里云建站套餐
  • 30天网站建设 视频教程淘宝客网站模板免费下载
  • 网站建设加盟模式用js做的网站代码吗
  • 汽车租赁网站的设计与实现wordpress seo指南
  • 网站界面设计要求重庆100强企业名单
  • 南阳做网站的公司制作网站哪里做
  • 网站后台内容管理系统网站首页没收录
  • 腾冲住房和城乡建设局门户网站网站建设找什么公司好
  • 处室网站建设思路北京网站被处罚
  • 网站备案接入商名称建站公司服务费包括哪些
  • 安徽教育云平台网站建设湛江网站设计
  • 物流公司网站 源码济宁建工网架工程有限公司
  • 给女朋友做的网站万荣网站seo