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端---》浏览器就可以访问了

python 复制代码
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默认访问权限

sql 复制代码
#登录
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文件配置

python 复制代码
ALLOWED_HOSTS = ['*', ]

然后在terminal面板运行

python 复制代码
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博客

相关推荐
PythonicCC1 小时前
Django的生命周期
python·django·sqlite
AI 嗯啦1 小时前
SQL详细语法教程(七)核心优化
数据库·人工智能·sql
ClouGence2 小时前
三步搞定!GaussDB 实时数据入仓
数据库·后端
鼠鼠我捏,要死了捏3 小时前
生产环境MongoDB分片策略优化与故障排查实战经验分享
数据库·mongodb·分片
KaiwuDB4 小时前
KWDB 分布式架构探究——数据分布与特性
数据库·分布式
笨蛋不要掉眼泪4 小时前
Spring Boot集成腾讯云人脸识别实现智能小区门禁系统
java·数据库·spring boot
Leiwenti5 小时前
MySQL高阶篇-数据库优化
数据结构·数据库·mysql
你的电影很有趣5 小时前
lesson44:Redis 数据库全解析:从数据类型到高级应用
数据库·redis·缓存
NineData5 小时前
2025 DTCC大会来了,NineData联合创始人周振兴将分享《AI重塑数据库管理模式》的主题演讲
数据库
NineData6 小时前
NineData亮相2025中国数据库技术大会,并荣获《年度优秀技术团队奖》
数据库