flask_萧井陌视频学习(一)

本文通过Python的Flask框架和Socket库,详细讲解如何创建一个简单的客户端和服务器。在运行代码后,访问localhost:5000能在浏览器中看到交互结果。注意服务器端代码中关于HTTP响应头的设置,对于IE8及以上浏览器尤其关键。
摘要由CSDN通过智能技术生成

Flask

文章导读:本文主要是介绍运用python语言中的Socket包来写简单的客户端和服务器。


客户端的创建:

import socket

#创建套接字
#AF_INET ipv4, SOCK_STREAM tcp
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#主机名
host = 'www.baidu.com'
#端口
port = 80
#连接
s.connect((host, port))

#连接后获取本机的ip和端口
ip, port = s.getsockname()
print('本机ip: {}, 端口: {}'.format(ip, port))

#构造一个HTTP请求
http_request = 'GET / HTTP/1.1\r\nhost:{}\r\n\r\n'.format(host)
#由于send函数只支持byte格式,而我们的为str格式所以要先转下格式
request = http_request.encode('utf-8')
print('转码后的request: {}'.format(request))
s.send(request)

#接受服务器响应,设定大小为1023字节
response = s.recv(1023)
#没有解码
print('response(没解码): ',response)
#解码之后
print('response(解码后): ', response.decode('utf-8'))


服务器创建:

import socket

#设置主机名和端口号
host = ''
port = 5000

#创建套接字
s = socket.socket()
#将主机名与端口号绑定
s.bind((host, port))

#用while来处理请求
while True:
    #监听,暂时不用管数字5
    print('before listen')
    s.listen(5)

    #当有客户端链接过来时获取客户端的 连接 和 ip
    #accept 返回两个参数 连接 和 ip地址
    print('before accept')
    connection, ip_address = s.accept()
    print('after accept')

    #recv接受来自客户端的数据, 返回的是bytes类型
    request = connection.recv(1024)

    #将bytes类型转换为utf-8类型并输出
    print('ip: {}, /request: {}'.format(ip_address, request.decode('utf-8')))

    #发送数据给客户端, b 表示为bytes类型
    http = b'HTTP/1.1 200 OK \r\n\r\n<h1>Hello Kevin</h1>'
    connection.sendall(http)
    #发送完毕,关闭本次连接
    connection.close()

当你写好代码以后接着在浏览器中输入你在程序中请求的端口号,我这的是5000端口【localhost:5000】得到如下界面:


注意:在服务器的编写时如果你的代码中这句没有加“HTTP/1.1 200 OK \r\n\r\n....”这一部分的话

http = b'HTTP/1.1 200 OK \r\n\r\n<h1>Hello Kevin</h1>'

当你在浏览器中输入localhost:5000后可能会访问到如下界面(原因在于你的浏览器是IE8以上)。


------------------------课程介绍------------------------ 第1章 HTML、CSS、布局 第2章 JavaScript 介绍 第3章 作业讲解、编程的选择结构和函数返回值和库、css初步、函数参数 第4章 数组和字符串、作业讲解、debug大法 第5章 作业讲解、如何方便地用测试写代码、break&continue;语句、object、读文档、递归 第6章 网页中引入JavaScript代码、DOM、事件 第7章 数据类型、多行字符串和转义符号、高阶函数、匿名函数 第8章 事件委托、时间操作、标签的可编辑属性、(本地存储) 和 JSON 格式 第9章 作业选讲、抽象化, 如何封装功能, 如何组织代码结构、变量命名的方法 第10章 HTTP 协议 和 AJAX、DOM 事件机制, 事件冒泡和事件捕获 第11章 面向对象、ajax、作业和代码思路 第12章 找工作基础、ajax作业、api封装 第13章 jQuery 常见用法、课程重点、常用组件例如弹窗的制作 第14章 作业讲解 第15章 log的要素、git和github、js的一些高级内容 bind apply call、前端CSS框架Bootstrap和Pure 第16章 JS的历史现状和未来、什么是ES6有什么新东西、CSS最基础的套路 第17章 前端工程师 第1章 网址组成、端口、HTTP协议、web服务器 第2章 作业讲解、服务器框架、html和getpost传递参数 第3章 基本框架、框架解释、model解释 第4章 cookie讲解、session讲解、作业讲解和调试技巧 第5章 todo程序、todo的更新和删除、带用户功能的todo程序 第6章 jinja模板套路、类和其他、作业讲解 第7章 摘要算法、加盐保护密码-数据库索引原理、微博程序 第8章 传统数据库、sql注入和mongo安装使用、mongo日常使用 第9章 前端基础、dom和事件、js todo 第10章 ajax 第11章 css 第12章 linux基础 第13章 flask框架 第14章 使用sshkey连接linux服务器、rsa原理和git软件使用、使用git软件同步本地和服务器代码 第15章 flask的session和cookie、flask留言板&web;后端栈、flask博客套路 第16章 抓包&爬虫基础、爬虫精讲、编码&API; 第17章 数据结构基础和算法分析原理、链表队列栈和四大结构、平衡二叉搜索树和哈希表 第18章 bbs基础、bbs标题和回复、bbs其他 第19章 web安全和应对、服务器的配置文件处理、开发论坛的板块功能 第20章 论坛收尾、迁移mongo、性能 第21章 操作系统、python高级 第22章 python高级技巧、rpc实现和vagrant 第23章 架构、分布式、性能、聊天室项目 第24章 简历和工作、工作后的计划、学习的计划
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值