Django:socket(B/S)--server端逐步进阶

1:框架本质—>2:解决中文乱码—>3:根据不同路径返回不同页面—>4:函数版—>5:函数进阶版—>6:返回具体页面—>7:让网页动起来

1:框架本质

import socket 
server_sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
server_sk.bind(('127.0.0.1',9999))  
server_sk.listen(128) 
while True:
    new_sk,addr = server_sk.accept() 
    content = new_sk.recv(1024) 
    content = content.decode('utf-8')
    print('接收到了数据:')   
    print(content)  
    new_sk.send('HTTP/1.1 200 ok\r\n\r\n'.encode('utf-8')) 
    # new_sk.send(b'HTTP/1.1 200 ok\r\n\r\n') 
    #请求首行 。b把str转为字节(二进制),转不了中文
    new_sk.send('ok'.encode('utf-8')) 
    new_sk.close() 

#问题:中文乱码

详细解释连接:https://blog.csdn.net/aixiangnan/article/details/89482398

2:解决中文乱码

import socket
server_sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_sk.bind(("127.0.0.1",9999))
server_sk.listen(128)
while True:
    #等待传入连接
    client_sk,addr = server_sk.accept()
    content = client_sk.recv(1024) #设置套接字接收最多缓冲大小字节,设置阻塞,防止发送的数据过大造成数据丢失,默认二进制
    content = content.decode("utf-8") # 从二进制转为utf-8编码格式
    print("接收到数据了:")
    print(content)
    msg1 = 'HTTP/1.1 200 ok\r\n'.encode('utf-8') #设置响应首行
    msg2 = 'Content-Type:text/html;charset=utf-8\r\n'.encode('utf-8') 
    #设置响应头 (内容类型及字符集)
    msg3 = '\r\n'.encode('utf-8') #设置空行
    # msg4 = '你好浏览器'.encode('utf-8') #设置响应体
    msg4 = str(input('请回答:')).encode('utf-8')
    cl
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
我想将frontend 也是用volumes,将其映射到/app/frontend目录,在/app/frontend下install以及build,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件 FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
07-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值