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博客

相关推荐
努力打怪升级28 分钟前
使用 pymssql 连接数据库(GBK 编码)乱码问题的完美解决方案
数据库
却话巴山夜雨时i36 分钟前
互联网大厂Java面试场景:从Spring到微服务的逐层提问
java·数据库·spring·微服务·日志·性能监控
oradh44 分钟前
Oracle数据库网络体系结构概述
数据库·oracle·数据库基础·数据库入门·oracle网络基础
满天星83035771 小时前
【MySQL】表的基本查询(上)
linux·服务器·数据库·mysql
主角1 71 小时前
MySQL高可用集群
数据库·mysql
dajun1811234561 小时前
信息系统运维管理全流程详解 在线画图工具绘制运维流程图表技巧
运维·数据库·信息可视化·流程图·旅游·论文笔记
流觞 无依1 小时前
SQLite数据库损坏修复指南——解决“database disk image is malformed”报错
jvm·数据库·sqlite
道清茗1 小时前
【MySQL知识点问答题】 安全与性能管理
数据库·mysql
2501_920627611 小时前
Flutter 框架跨平台鸿蒙开发 - 数据库学习助手
数据库·学习·flutter·华为·harmonyos
ZStack开发者社区1 小时前
阿里云 × ZStack:云端管得好,边端交付稳
数据库·边缘计算