制作广告网站的步骤,静态网站 价格,长兴企业网站开发,nginx wordpress 优化1.web框架底层
1.1 网络通信 注意#xff1a;局域网 个人一般写程序#xff0c;想要让别人访问#xff1a;阿里云、腾讯云。
去云平台租服务器#xff08;含公网IP#xff09;程序放在云服务器
先以局域网为例
我的电脑【服务端】
import socket# 1.监听本机的IP和…1.web框架底层
1.1 网络通信 注意局域网 个人一般写程序想要让别人访问阿里云、腾讯云。
去云平台租服务器含公网IP程序放在云服务器
先以局域网为例
我的电脑【服务端】
import socket# 1.监听本机的IP和端口
sock socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((127.0.0.1, 8001)) # 我自己的电脑IP端口8001# 2.让多少人等待
sock.listen(5)while True:# 3.等待连接请求的申请有人来连接阻塞conn, addr sock.accept()# 4.连接成功后立即发送conn.sendall(欢迎使用xx系统.encode(utf-8))# 5.断开连接conn.close()# 6.停止服务端程序
sock.close()女朋友的电脑同一个局域网【客户端】
import socket# 1. 向指定IP发送连接请求
client socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((192.168.10.3, 8001))# 2. 接收你发的消息
message client.recv(1024)
print(message.decode(utf-8))# 3.断开连接
client.close()姓王的好兄弟【客户端】
import socket# 1. 向指定IP发送连接请求
client socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((192.168.10.3, 8001))# 2. 接收你发的消息
message client.recv(1024)
print(message.decode(utf-8))# 3.断开连接
client.close()我们自己写时通过socket模块可以实现网络上的两端进行通信。
1.2 常见软件架构
bs架构
浏览器充当客户端
服务器网站cs架构开发应用程序例如QQ、Pycharm、网易云音乐安装在电脑上的软件
客户端安装在电脑上的软件。 网易云音乐
服务端网易服务器1.3 快速自己写以为网站不能用django、flask等
import socket# 1.监听本机的IP和端口
sock socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((192.168.0.6, 9000)) # 我自己的电脑IP端口8001# 2.让多少人等待
sock.listen(5)while True:# 3.等待连接请求的申请有人来连接阻塞 - 登录浏览器来连接我conn, addr sock.accept()# 4.收到浏览器发送的消息buf conn.recv(2048)print(buf)# 5.给浏览器返回数据conn.send(bHTTP/1.1 200 OK\r\n\r\n)conn.send(bHello, World)# 6.断开连接conn.close()# 6.停止服务端程序
sock.close()2. web框架
常见的web框架django、flask、tornado、sanic、fastapi… web应用程序
用户网络通信的socketweb框架业务开发
以django为例
wsgiref模块、uwsgi、daphne - 本质上都是socket实现。原来实现了框架
以flask为例
werkzurg、uwsgi、…flask框架
以tornado为例
tornado、werkzurg、uwsgi、…框架
2.1 wsgiref
from wsgiref.simple_server import make_serverdef run_server(environ, start_response):start_response(200 OK, [(Content-Type, text/html)])return [bytes(h1Hello, web!/h1, encodingutf-8), ]if __name__ __main__:httpd make_server(127.0.0.1, 8000, run_server)httpd.serve_forever()2.2 werkzeug
pip install werkzeugfrom werkzeug.wrappers import Responsedef application(environ, start_response):response Response(Hello World!, mimetypetext/plain)return response(environ, start_response)if __name__ __main__:from werkzeug.serving import run_simplerun_simple(localhost, 4000, application)2.3 各框架的区别
django、flask、tornado、sanic、fastapi..内部集成功能的多少 django内部提供了很多组件。 【相对大】flask、tornado、sanic、fastapi… 本身自己功能很少第三方组件。【相对小】 同步框架 vs 异步非阻塞 异步非阻塞tornado、sanic、fastapi、django同步django、flask、bottle、webpy…
1.同步框架django、flask
2.tornado异步非阻塞特别NB。- 同步常见应用。- 异步IO应用 conroutine装饰器 redis/MySQL/...
3.sanic路飞小猿圈平台
4.fastapi- 参考flask- py最新注解- restfulAPI- 异步目前不看好- 增加编程的难度功能效率- 项目中不会有那么IO操作 --- 100功能/2-IO --- celery