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

Django二转day01

web应用

cs/bs 架构

# c/s  mysql  c和s装在同一台机器上
    -c链接s: cmd窗口中   mysql -h 127.0.0.1 -P 3306 -uroot -p密码
    -网络协议:一般情况,都是软件自定制协议---》基本都是基于TCP
# b/s 浏览器--服务端 
    -咱们写的django,运行后----》s 服务端
    -客户端链接----》浏览器 
    -网络协议:所有全是  http协议---》基于TCP
        -如果不是http协议,浏览器识别不了

# bs本质就是cs

# bs好处---》软件更新了---》只需要后端更新--》前端是浏览器,不需要变---》直接访问,看到的就是最新的


基于SOCKET写一个web应用

-我们学习bs架构软件开发---》我们开发 s端
-使用socket 写一个 s端---》浏览器就可以访问了

import socket

def server_run():
    soc = socket.socket()
    soc.bind(('127.0.0.1', 8008))
    soc.listen(5)
    while True:
        conn, addr = soc.accept()
        recv_data = conn.recv(1024)
        print(recv_data)
        # 1 直接在send里写,发送给客户端  http响应的格式
        # conn.send(b'HTTP/1.1 200 OK\r\n\r\n<h1>hello web</h1><img src="https://img2.woyaogexing.com/2022/12/24/a22973058eab2aafa11248a8b6031f5e.jpg"></img>')
        #2 打开一个html文件,发送给客户端
        # with open('index.html','r',encoding='utf-8') as f:
        #     data=f.read()
        # conn.send(('HTTP/1.1 200 OK\r\n\r\n%s'%data).encode('utf-8'))
        # 3 动态网页,字符串替换
        import time
        now=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        print(now)
        with open('index.html','r',encoding='utf-8') as f:
            data=f.read()
        data=data.replace('@@',now)
        conn.send(('HTTP/1.1 200 OK\r\n\r\n%s'%data).encode('utf-8'))
        conn.close()

if __name__ == '__main__':
    server_run()

http协议

1.是什么?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)
 2.作用是?
服务器与本地浏览器之间传输超文本的传送协议

 3 特点是什么?
    -1基于TCP协议之上的【应用层】协议----》它是可靠传输
    -2 基于请求-响应模式: 必须客户端主动发起--》服务端才有响应
        -如果实时跟服务端通信---》每隔2s发送一次请求--》轮询---》实现实时聊天
        -web版微信
        -实时通信---》使用轮询, webscoket 协议
        
        
   -3 无状态保存  
        -发送多次请求,对于服务端来讲,都是新的
        -cookie,session做会话保持
        
   -4 无连接  客户端不会一直跟服务端链接
        基于tcp---》有链接
 
# 4 http请求协议与响应协议
    -请求协议
        -请求首行---》请求方式--》请求地址--》请求协议版本号 1.1  \r\n
        -请求头:key-value形式 \r\n   \r\n\r\n
        -请求体:get请求一般没有请求体,post请求有请求体
        
    -响应协议 
        -响应首行:HTTP/1.1 200 OK\r\n   --协议版本---响应状态码--》响应描述符
        -响应头:响应头有什么
        -响应体:一般给个html标签
            浏览器中看到的页面,都是响应体的内容

让其他人可以通过端口访问你的mysql数据库

修改mysql默认访问权限

#登录
mysql -uroot -p

#显示数据
show databases;

#进入mysql
use mysql;

#显示面板
show tables;

#显示host访问方式
select user,host from user;

#修改root用户的访问方式
update user set host = '%' where user = 'root';

#刷新
flush privileges;

让其他人可以通过端口访问你的Django项目

在settings文件配置

ALLOWED_HOSTS = ['*', ]

然后在terminal面板运行

python manage.py runserver 0.0.0.0:8000 

http版本及其区别

HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别有哪些? - 知乎

常用的请求头,响应头,响应状态码

HTTP响应头和请求头信息对照表-BeJSON.com

https://www.cnblogs.com/yf0826/p/9016602.html

HTTP状态码(响应码)_响应状态码-CSDN博客


http://www.kler.cn/a/157359.html

相关文章:

  • 登山第十六梯:深度恢复——解决机器人近视问题
  • linux系统编程(五)
  • 文件操作(File类)
  • 鸿蒙学习笔记:用户登录界面
  • Java基于SSM框架的无中介租房系统小程序【附源码、文档】
  • (通信)海洋波导(Ocean Acoustic Waveguide)
  • 【前端】多线程 worker
  • 解决msvcp140.dll丢失问题的5种方法,验证有效
  • Linux Namespace技术
  • C#图像处理OpenCV开发指南(CVStar,04)——图片像素访问与多种局部放大效果的实现代码
  • TensorRT-LLM保姆级教程(一)-快速入门
  • 价差后的几种方向,澳福如何操作才能盈利
  • web自动化 -- pyppeteer
  • 计算机网络(二)| 物理层上 | 数据通信基础知识 调制 频率范围 信噪比
  • 数据结构与算法(四)分治算法(Java)
  • Python 3 读写 json 文件
  • 小程序长按识别二维码
  • UE中C++创建对象方法不完全汇总
  • gitlab高级功能之CI/CD组件 - 实践(二)
  • Android Framework 电池提醒相关Dialog熄屏消失的问题
  • Redis实战篇笔记(最终篇)
  • Java核心知识点整理大全18-笔记
  • 简单的界面与数据分离的架构
  • TensorRT-LLM保姆级教程(二)-离线环境搭建、模型量化及推理
  • 十二月四日多继承
  • 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-C