Python的Flask項目中獲取請求用戶IP地址 addr問題
Python Flask項目中獲取請求用戶IP地址 addr
服務器直接部署Flask
import logging
from flask import Flask, render_template, request
# Initialize the Flask application
app = Flask(__name__)
# Default route, print user's IP
@app.route('/')
def index():
?? ? ip = request.remote_addr
?? ? logging.debug(ip)
?? ? return render_template('index.html', user_ip=ip)
if __name__ == '__main__':
?? ? app.run(host="0.0.0.0", port=80)Docker中Nginx代理Gunicorn中啟動Flask
這種情況下, 按照上面的代碼只能獲取到本服務器地址。需要使用werkzeug.middleware.proxy_fix
import logging
from flask import Flask, render_template, request
from werkzeug.middleware.proxy_fix import ProxyFix
# Initialize the Flask application
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app, num_proxies=1)
# Default route, print user's IP
@app.route('/')
def index():
?? ? ip = request.remote_addr
?? ? logging.debug(ip)
?? ? return render_template('index.html', user_ip=ip)查到IP可以做點什么
Flask獲取用戶的ip,查詢用戶的登錄次數(shù),并且封ip
Python flask (request 請求)
注意參數(shù)是采用 request.values.get 獲取
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from flask import Flask, jsonify, abort, request
app = Flask(__name__)
result = [
{
"code":"001",
"desc":"success",
"data":1
}
]
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/send/imgaddress', methods=['POST'])
def create_task():
getdata = request.data.decode('utf-8')
userImg = ''
userdebugImg = ''
userImg = request.values.get('user')
userdebugImg = request.values.get('userdebug')
print('userImg:', userImg)
print('userdebugImg:', userdebugImg)
result[0]["code"] = '001'
return jsonify({'result': result})
if __name__ == "__main__":
app.run(debug=True)
測試
http://127.0.0.1:5000/send/imgaddress?user=172.28.6.1&userdebug=172.28.6.0
同局域網(wǎng)跨電腦訪問
可以注意到上面使用的 ip 是 127.0.0.1,那么使用本機電腦ip如何設置呢?
修改如下:
if __name__ == "__main__": ?? ?app.run(host="0.0.0.0", debug=False)
允許跨組訪問
app = Flask(__name__)
改為:
from flask_cors import CORS app = Flask(__name__) CORS(app, supports_credentials=True)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
基于python list對象中嵌套元組使用sort時的排序方法
Python之csv文件從MySQL數(shù)據(jù)庫導入導出的方法
Python語法糖for?else循環(huán)語句里的break使用詳解
OpenCV中resize函數(shù)插值算法的實現(xiàn)過程(五種)
Python django使用多進程連接mysql錯誤的解決方法
python實現(xiàn)的接收郵件功能示例【基于網(wǎng)易POP3服務器】

