Python的Flask項(xiàng)目中獲取請求用戶IP地址 addr問題
Python Flask項(xiàng)目中獲取請求用戶IP地址 addr
服務(wù)器直接部署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中啟動(dòng)Flask
這種情況下, 按照上面的代碼只能獲取到本服務(wù)器地址。需要使用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可以做點(diǎn)什么
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,那么使用本機(jī)電腦ip如何設(shè)置呢?
修改如下:
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)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)FTP文件傳輸?shù)膶?shí)例
在本篇文章里小編給各位分享的是關(guān)于Python實(shí)現(xiàn)FTP文件傳輸?shù)膶?shí)例以及相關(guān)代碼,需要的朋友們學(xué)習(xí)下。2019-07-07基于python list對象中嵌套元組使用sort時(shí)的排序方法
下面小編就為大家分享一篇基于python list對象中嵌套元組使用sort時(shí)的排序方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python之csv文件從MySQL數(shù)據(jù)庫導(dǎo)入導(dǎo)出的方法
今天小編就為大家分享一篇Python之csv文件從MySQL數(shù)據(jù)庫導(dǎo)入導(dǎo)出的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python語法糖for?else循環(huán)語句里的break使用詳解
這篇文章主要介紹了Python語法糖之for?else循環(huán)語句里的break使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05matplotlib調(diào)整子圖間距,調(diào)整整體空白的方法
今天小編就為大家分享一篇matplotlib調(diào)整子圖間距,調(diào)整整體空白的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08OpenCV中resize函數(shù)插值算法的實(shí)現(xiàn)過程(五種)
最新版OpenCV2.4.7中,cv::resize函數(shù)有五種插值算法:最近鄰、雙線性、雙三次、基于像素區(qū)域關(guān)系、蘭索斯插值。感興趣的可以了解一下2021-06-06Python django使用多進(jìn)程連接mysql錯(cuò)誤的解決方法
這篇文章主要介紹了Python django使用多進(jìn)程連接mysql錯(cuò)誤的解決方法,詳細(xì)的介紹了解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10python實(shí)現(xiàn)的接收郵件功能示例【基于網(wǎng)易POP3服務(wù)器】
這篇文章主要介紹了python實(shí)現(xiàn)的接收郵件功能,結(jié)合實(shí)例形式分析了Python基于網(wǎng)易POP3服務(wù)器接收郵件相關(guān)操作技巧,需要的朋友可以參考下2019-09-09