python

Python Flask使用Nginx做代理时如何获取真实IP

使用Flask开发的项目,但部署到线上Docker容器中后,因为使用了Nginx做代理,所以Flask无法获取真实IP地址,获取到的都是192.0.0.1 ,解决方法如下: 首先是Nginx的配置,需要在转发的请求headers中设置好真实IP: location /path { root html; proxy_pass http://127.0.0.1:5000/; proxy_set_header X-Real-IP $remote_addr; } 然后在Flask中通过headers获取IP,为了兼容使用nginx不使用nginx的情况,做了一些处理: ip

  • zgljl2012
1 min read
python

Python Flask静态目录

在创建了Flask项目之后,如果不想用到模板引擎,想做前后端分离的项目时,就需要用到静态目录了。Flask的静态目录规定是static,也就是说所有的静态文件需要放到static文件夹下才能访问到。如下目录: - app.py - static - index.html 要访问index.html,需要通过Url:http://localhost:5000/static/index.html 也就是说要加上static路径进行访问。但这样又很不方便,因为要加static的话,访问html的url就显得有些“丑”了。这个时候,可以使用参数 static_

  • zgljl2012
1 min read
【Python】配置文件读取
python

【Python】配置文件读取

Python提供了ConfigParser包来进行配置文件读取。 API: * read(filename) 读取ini文件内容 * sections() 得到所有的section,并以list的形式返回 * options(section) 得到该section的所有option * items(section) 得到该section的所有键值对 * get(section,option) 得到section中option的值,返回为string类型 * getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数 * add_section(section) 添加一个新的section * set( section,

  • zgljl2012
1 min read
python

创建一个简单的Python服务器

有时候在学习一些前端框架或前端库时,需要有一个Web服务器作为后端提供数据。如果使用Apache或Tomcat等服务器比较麻烦(需要把代码放到指定位置),而且不够轻量级——相比起使用Python来说。 如果没有安装Python的话,需要先安装Python,建议安装Python 3以上的版本。 进入你的项目文件夹,打开一个终端(控制台窗口),输入: python -m http.server 8000 通过 http://localhost:8000 就可以在浏览器访问了…… 这样就创建成功了一个PythonWeb服务器,都觉得简单的过分了…… > 如果使用的是Python 2,输入:python -m SimpleHttpServer 8000

  • zgljl2012
1 min read
python

【Python Requests开发文档 2.10】快速上手

下面我们就开始学习Requests简单优雅的API吧! 首先,请先确保自己Requests已经安装好了。 我们将通过下面的例子来学习Requests: 1. 发起请求 2. Get请求给url添加参数 3. Response的内容 4. 二进制响应 发起请求 打开控制台,输入: >>> import requests 引入requests模块 下面来获取一个网页,作为示例,我们来获取一下百度的首页: >>> r = requests.get("https://www.baidu.com") 好了,这个 r 就是我们获取的Response对象,从r中能获取所有我们需要的信息。

  • zgljl2012
3 min read
python

【Python Requests开发文档 2.10】安装与源码获取

目录 [http://www.zgljl2012.com/2016/08/04/python-requestskai-fa-wen-dang-2-10-mu-lu/] pip install requests Python的包安装都很简单,打开一个控制台,使用下面这条命令就好: $ pip install requests 如果你没有安装pip的话,可以看这里 [http://docs.python-guide.org/en/latest/starting/installation/]. 获取源码 Requests的源码托管在了Github上,可以直接访问https://github.com/

  • zgljl2012
1 min read
python

【Python Requests开发文档 2.10】简介

目录 [http://www.zgljl2012.com/2016/08/04/python-requestskai-fa-wen-dang-2-10-mu-lu/] 1. 理念 Requests基于部分PEP20的理念开发而成: 1. 美丽胜于丑陋 2. 明确胜于含糊 3. 简单胜于复杂 4. 复杂胜于难懂 5. 重视可读性 Requests遵循这些理念,所以比起urllib2这些库来,既算得上是“傻瓜式”,又有着优雅的API。 > Python Enhancement Proposals (PEP)是1999年Tim Peters提出的Python编程语言设计中的20条软件开发理念。

  • zgljl2012
2 min read
设计模式

【Python设计模式】概述

设计模式是面向对象设计领域经久不衰的话题。它虽然不是银弹,但要设计一个可维护、可扩展的系统,经过前人验证后的设计模式能给设计者提供巨大的帮助。 最初学习的设计模式是Java版的,现在转到了Python。Python是一门很简洁的语言,许多复杂的功能往往只需要安装一个第三方包,然后写一个函数便可实现自己想法,非常方便。但当我试图用Python写一个可扩展的系统时(能爬取全国各省企业的信用信息的系统),遇到了很大的麻烦。开始只是使用函数以及模块实现功能,本来还有种回到了刚写代码时写C语言头文件和函数的亲切感,但代码越写越多时——因为需要对每一个省的验证码进行分析破解以及对索引列表信息、详细信息的爬取——一种深深的无力感就袭来了。我知道,面向过程已经不管用了。于是开始用起了Python中的面向对象进行封装。 在开始使用面向对象的时候,自然而然地就想到了设计模式。于是在网上找了找资料,意外地Github上找到了一群外国大牛(项目贡献者们)开源的一个Python设计模式项目。所以,就有了这一系列文章。代码就不客气地Github这个开源项目的代码。开源项目的地址在此

  • zgljl2012
2 min read
设计模式

【Python设计模式】Factory Method 工厂方法模式

工厂方法模式是一种创建型模式,即一种用于创建对象的模式。举个例子,现在大部分的应用都想要变得international,国际化(特别是现在面临超强监管下的手游行业)。那国际化的第一步是什么呢?当然是语言的国际化,文化、历史这样的先搁一边,得先让人看懂,再来让人喜欢。所以我们第一步就必须让应用能做到能切换语言,要做到切换语言其实很容易,比如下面这段: if lan is 'Chinese': dog = "狗" cat = "猫" else lan is 'English': dog = "dog" cat = "cat" 这样做简单是简单,但不方便,

  • zgljl2012
3 min read
zgljl2012@gmail.com