python和pycharm一样_同样的Python代码在PyCharm和Pydev里面的运行结果不一致

一、问题描述:写一个基于requests的Demo,现在PyCharm下运行提示AttributeError,但是在Pydev里面运行结果通过,如下两图:

图一:Pycharm里面的运行结果

图二:Pydev里面的运行结果

二、源代码:

代码实现需求:

1. 复习Flask的路由和HTTP方法的相关知识

2. 介绍Flask如何处理请求

3. 讲解token的概念和登录模块的思路

4. 实现一个简易的验证登录模块

5. 使用Requests验证

================================================================

app.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import base64

import random

import time

from flask import Flask, request

app = Flask(__name__)

users = {

"magigo": ["123456"]

}

def gen_token(uid):

token = base64.b64encode(':'.join([str(uid), str(random.random()), str(time.time() + 7200)]))

users[uid].append(token)

return token

def verify_token(token):

_token = base64.b64decode(token)

if not users.get(_token.split(':')[0])[-1] == token:

return -1

if float(_token.split(':')[-1]) >= time.time():

return 1

else:

return 0

@app.route('/index', methods=['POST', 'GET'])

def index():

print request.headers

return 'hello'

@app.route('/login', methods=['POST', 'GET'])

def login():

uid, pw = base64.b64decode(request.headers['Authorization'].split(' ')[-1]).split(':')

if users.get(uid)[0] == pw:

return gen_token(uid)

else:

return 'error'

@app.route('/test1', methods=['POST', 'GET'])

def test():

token = request.args.get('token')

if verify_token(token) == 1:

return 'data'

else:

return 'error'

if __name__ == '__main__':

app.run(debug=True)

=====================

requsets.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import requests

from requests import app

r = requests.get('http://127.0.0.1:5000/login', auth=('magigo', '123456'))

print r.text

token ='bWFnaWdvOjAuMzE4MTUxNTA1MjQ4OjE0MjU4MzkzMjMuODk='

r = requests.get('http://127.0.0.1:5000/test1', params={'token': token})

print r.text

================================================================================

三、解决方案

出现这种情况的原因:没有XXX方法,一般跟编译器没有关系,而是跟引用的库有关系。

(1)在Pycharm下查看引用的库版本:Setting-

》Project Interpreters

(2)在Pydev下查看引用的库版本

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值