python默认端口是多少

导读:今天首席CTO笔记来给各位分享关于python默认端口是多少的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

python爬虫前奏

在浏览器中发送http请求的过程:

1.当用户在浏览器地址栏输入URL并按回车键时,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“获取”和“发布”两种方法。

2.当我们输入网址htp://www百度。com在浏览器中,浏览器发送Request请求获取HTP/www Baidu.com的html文件,服务器将Response文件对象发回浏览器。

3.浏览器分析响应中的HTML,发现它引用了很多其他文件,比如Images文件、CSS文件、JS文件。浏览器会自动再次发送一个获取图片、CSS文件或JS文件的请求。

4.当所有文件下载成功后,网页将完全按照HTML语法结构显示。

#url解释:

URL是统一资源定位符的缩写,统一资源定位符。

网址由以下部分组成:

scheme://host:port/path/ query-string = XXX # ancho

方案:表示访问的协议,如http或https、ftp等。

主机:主机名、域名,如。

端口:端口号。当您访问网站时,浏览器默认使用端口80。

路径:找到路径。例如,在,,以下趋势/现在是路径。

查询字符串:查询字符串,如?. Wd=python,后跟Wd = python,是搜索字符串。

锚点:锚点,背景一般忽略,前端用于页面定位。

浏览器中的一个ufl,浏览器将对这个url进行编码。除了英文字母、数字和一些符号之外,所有其他符号都用百分号加上十六进制代码值进行编码。

#请求头通用参数:

在http协议中,当向服务器发送请求时,数据被分成三部分。第一个是把数据放在url中,第二个是把数据放在正文中(在post请求中),第三个是把数据放在头部。这里,我们介绍一些经常在网络爬虫中使用的请求头参数:

用户代理:浏览器名称。这通常用于网络爬虫。当请求网页时,服务器可以通过这个参数知道哪个浏览器发送了请求。如果我们通过爬虫发送请求,那么我们的用户代理就是Python。对于那些有反爬虫机制的网站,很容易判断你的请求是爬虫。因此,我们应该始终将此值设置为某些浏览器的值,以伪装我们的爬虫。

引用者:指示当前请求来自哪个网址。这也可以作为反爬虫技术。如果不是来自指定页面,则不会做出相关响应。

http协议是无状态的。也就是说,同一个人发送了两个请求,服务器无法知道这两个请求是否来自同一个人。因此,此时使用cookie进行标识。一般来说,如果你想成为一个登录后才能访问的网站,你需要发送cookie信息。

常见的请求方法有:

在Http协议中,定义了八种请求方法。这里介绍两种常见的请求方法,即get请求和post请求。

Get request:一般来说,get request只在从服务器获取数据时使用,不会对服务器资源产生任何影响。

发布请求:发送数据(登录)、上传文件等。,并在会影响服务器资源时使用post请求。

这是网站开发中常用的两种方法。并且一般会遵循使用原则。然而,为了成为一个反爬虫机制,一些网站和服务器经常出于常识玩牌。应该使用get方法的请求可能必须更改为post请求,这取决于具体情况。

常见响应状态代码:

00:请求正常,服务器正常最近数据。

31:永久重定向。例如,当您访问时,您将被重定向到。

32:临时重定向。例如,当访问需要登录的页面时,此时没有登录,您将被重定向到登录页面。

400:在服务器上找不到请求的网址。换句话说,盾请求ur1错误。

403:服务器拒绝访问,权限不足。

50:服务器内部错误。可能是服务器有bug。

python默认端口是多少  第1张

使用python发布接口,如何提醒用户升级

简单说下接口测试,现在常用的2种接口就是http api和rpc协议的接口,今天主要说:http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串;

接口协议:http、webservice、rpc等。

请求方式:get、post方式

请求参数格式:

a. get请求都是通过url?param=xxx¶m1=xxx

b. post请求的请求参数常用类型有:application/json、application/x-www-form-urlencoded、multipart/form-data、text/html等。

还需要知道接口的url、参数类型、返回结果的数据格式、了解接口是否有header、cookie等信息。

接口的实现:请求方式-get,接口的写法:

import flaskfrom flask import requestfrom flask import jsonifyimport toolsimport OP_dbimport settings'''flask: web框架,可以通过flask提供的装饰器@server.route()将普通函数转换为服务登录接口,需要传url、username、passwd'''#创建一个服务,把当前这个python文件当做一个服务server = flask.Flask(__name__)#server.config['JSON_AS_ASCII'] = False # @server.route()可以将普通函数转变为服务 登录接口的路径、请求方式@server.route('/login', methods=['get'])def login(): # 获取通过url请求传参的数据 username = request.values.get('name') # 获取url请求传的密码,明文 pwd = request.values.get('pwd') # 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None if username and pwd: # 获取加密后的密码 password = tools.md5_pwd(pwd) #执行sql,如果查询的username和password不为空,说明数据库存在admin的账号 sql = 'select name,password from test where name= "%s" and password= "%s";' %(username, password) # 从数据查询结果后,res返回是元组 res = OP_db.getconn( host=settings.mysql_info['host'], user=settings.mysql_info['user'], passwd=settings.mysql_info['pwd'], db=settings.mysql_info['db'], port=settings.mysql_info['port'], sql=sql ) if res: #res的结果不为空,说明找到了username=admin的用户,且password为加密前的123456 resu = {'code': 200, 'message': '登录成功'} return jsonify(resu) #将字典转换为json串, json是字符串 else: resu = {'code': -1, 'message': '账号/密码错误'} return jsonify(resu) else: res = {'code': 999, 'message': '必填参数未填写'} return jsonify(res) if __name__ == '__main__': server.run(debug=True, port=8888, host=0.0.0.0) #指定端口、host,0.0.0.0代表不管几个网卡,任何ip都可以访问

md5加密、数据库mysql的操作详见我的其他博客~~~~~

get访问接口:

项目启动后,接口的地址是:,默认端口是5000。

打开浏览器,输入url;pwd=123456,后面跟上接口的地址login,参数跟url直接使用?相连,每个请求参数直接使用相连。请求成功,则返回{'code': 200, 'message': '登录成功'}。

请求方式-post,接口的写法:

import flaskfrom flask import jsonifyfrom flask import requestfrom conf import opMysqlfrom conf import md5_create'''注册接口:post请求,请求参数入参类型json{ "username":"aaa", "pwd":"123456", "c_pwd":"123456"}'''server = flask.Flask(__name__)@server.route('/register', methods=['get', 'post'])def registerPost(): #判断接口的请求方式是GET还是POST if request.method == 'POST': # 获取请求参数是json格式,返回结果是字典 params = request.json username = params.get('username') pwd = params.get('pwd') confirmpwd = params.get('confirmpwd') if username and pwd and confirmpwd: # 判断输入的用户名、密码、确认密码都不为空 select_sql = 'select username from lhldemo where username = "%s" ;'%username # 查询注册的用户是否存在数据库,如果存在,则username不为空,否则username为空 res_mysql = opMysql.op_select(select_sql) if res_mysql: return jsonify({"code": 999, "mesg": "用户已注册"}) else: if pwd == confirmpwd: # 判断pwd和confirmpwd一致 new_pwd = md5_create.md5_test(pwd) # 加密后的密码 insert_sql = 'insert into lhldemo(username,password) values("%s", "%s") ;' % (username, new_pwd) opMysql.op_insert(insert_sql) return jsonify({"code": 200, "msg": "注册成功"}) else: return jsonify({"code":998, "msg":"密码不一样"}) else: return jsonify({"code": 504, "msg": "必填项不能为空"}) else: return jsonify({"code": 201, "msg": "请求方式不正确"}) if __name__ == '__main__': #port可以指定端口,默认端口是5000 #host写成0.0.0.0的话,其他人可以访问,代表监听多块网卡上面,默认是127.0.0.1 server.run(debug=True, port=8899, host='0.0.0.0')

post访问接口:

项目启动后,接口的地址是:,默认端口是5000。

打开浏览器,输入url,后面跟上接口的地址register,参数使用postman或jmeter进行请求,参数类型是json。请求成功,则返回{'code': 200, 'message': '登录成功'}。

请求方式-get、post都可以访问,写法如下:import flaskfrom flask import jsonifyfrom flask import requestfrom conf import opMysqlfrom conf import md5_create'''注册接口:post请求,请求参数入参类型json{ "username":"aaa", "pwd":"123456", "c_pwd":"123456"}'''server = flask.Flask(__name__)@server.route('/register', methods=['get', 'post'])def registerPost(): #post请求获取请求的参数,返回结果类型是str username = request.values.get('username') pwd = request.values.get('pwd') confirmpwd = request.values.get('confirmpwd') if username and pwd and confirmpwd: # 判断输入的用户名、密码、确认密码都不为空 select_sql = 'select username from lhldemo where username = "%s" ;'%username # 查询注册的用户是否存在数据库,如果存在,则username不为空,否则username为空 res_mysql = opMysql.op_select(select_sql) if res_mysql: return jsonify({"code": 999, "mesg": "用户已注册"}) else: if pwd == confirmpwd: # 判断pwd和confirmpwd一致 new_pwd = md5_create.md5_test(pwd) # 加密后的密码 insert_sql = 'insert into lhldemo(username,password) values("%s", "%s") ;' % (username, new_pwd) opMysql.op_insert(insert_sql) return jsonify({"code": 200, "msg": "注册成功"}) else: return jsonify({"code": 998, "msg": "密码不一样"}) else: return jsonify({"code": 504, "msg": "必填项不能为空"}) if __name__ == '__main__': #port可以指定端口,默认端口是5000 #host默认是127.0.0.1,写成0.0.0.0的话,其他人可以访问,代表监听多块网卡上面, server.run(debug=True, port=8899, host='0.0.0.0')

python2中为什么017620表示8080

利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:

python -m Web服务器模块 [端口号,默认8000]

例如:

python -m SimpleHTTPServer 8080

然后就可以在浏览器中输入

h ttp://loca lhost:端口号/路径

来访问服务器资源。

例如:

h ttp://local host:808 0/index.h tm(当然index.htm文件得自己创建)

其他机器也可以通过服务器的IP地址来访问。

pycharm使用windows10子系统ubuntu环境运行python

在Microsoft Store中搜索ubuntu 找到后点击安装、启动进入ubuntu界面设置账号密码

进入页面后输入cat /etc/lsb-release 查看系统版本 我安装的是ubuntu 20.04.1 LTS

先更新下包

可以在pycharm的terminal中用ssh请求连接测试一下,发现连接被拒绝了。

因为这里默认使用端口22连接,而22已经被windows占用。打开配置文件,

修改端口为2222

保存退出后启动ssh

发现启动失败提示sshd error: could not load host key

使用命令安装

完成后查看启动ssh启动状态成功

再在pycharm中连接测试下,发现已经可以连接了

但是又发现一个新问题

再用ssh连接,发现root账号登陆总是不成功,需要使用启动ubuntu设置的账号密码登录,注意现在使用2222端口连接

接下来在pycharm中点击Tools Deployment Configuration 增加sftp连接,填入刚刚ssh连接的配置信息,点击Test Connection连接成功

在Setting-Project:Intepreter中选择SSH Intepreter 使用刚刚添加的连接

点击运行发现找不到远程文件

最后再运行一次,成功!

pip安装包时遇到gcc问题

Python配合前端写简单接口(加前端vue代码)

服务器端:

# 开发人员: hanhan丶

# 开发时间: 2020/11/12 14:36

import flask, json                           #Flask 一个轻量级的web框架

from flask_corsimport *

server = flask.Flask(__name__)      # __name__代表当前的python文件。把当前的python文件当做一个服务启动

CORS(server, supports_credentials=True)     # 解决跨域

@server.route('/login', methods=['post'])

# 第一个参数就是路径,第二个参数支持的请求方式,不写的话默认是get,

# 加了@server.route才是一个接口,不然就是一个普通函数

def login():

user = flask.request.values.to_dict()

for itemin user:

items = json.loads(item)

loginName = items.get("loginName")

password = items.get("password")

if loginNameand password:

res = {"code":0, "msg":"请求成功", "data": {"loginName": loginName, "password": password}}

else:

res = {'msg':'调用失败'}

# json.dumps 序列化时对中文默认使用的ascii编码,输出中文需要设置ensure_ascii=False

        return json.dumps(res, ensure_ascii=False)

if __name__ =='__main__':

# port可以指定端口,默认端口是5000

    # host默认是服务器,默认是127.0.0.1

    # debug=True 修改时不关闭服务

    server.run(debug=True)

前端:

template

  div

    账号:input type="text" v-model="loginName"

    br

     密码:input type="text" v-model="password"

    br

    br

    br

    button @click="btn"点击/button

  /div

/template

script

import axios from "axios";

export default {

  data() {

    return {

      loginName: "",

      password: ""

    };

  },

  methods: {

    getDate() {

      axios({

        headers: {

          "X-Requested-With": "XMLHttpRequest",

          "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"

        },

        url: "",

        method: "post",

        data: {

          loginName: this.loginName,

          password: this.password

        }

      }).then(res = {

        console.log(res);

      });

    },

    btn() {

      this.getDate();

    }

  }

};

/script

style

/style

python1个端口起多个web服务

可以默认启动一个端口为8000的web服务,直接访问会显示执行命令所在目录中的文件,如果需要使用其他端口,在最后增加端口就可以。如以下就使用8080端口。

结语:以上就是首席CTO笔记为大家整理的关于python默认端口是多少的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23
下一篇 2023-09-23

相关推荐

发表回复

登录后才能评论