KevinHuang

KevinHuang的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 一些书

  • 常用命令

  • python tips

  • 站点地图

  • rss

  • 公益404

  • 搜索

django oauth2认证模块django-oauth-toolkit

发表于 2015-09-02 | 分类于 django | 阅读次数:
oauth2OAuth 2.0是行业标准的授权协议。 OAuth 2.0取代了2006年创建的原始OAuth协议所做的工作.OAuth 2.0专注于客户端开发人员的简单性,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。该规范及其扩展正在IETF OAuth工作组内开发。 oauth2授权类型有: Authorization Code Implicit Password Client Credentialsdjango-oauth-toolkit 安装: 1pip install django-oauth-toolkit 配置: Add oauth2_provider to your INSTALLED_APPS 1234INSTALLED_APPS = ( ... 'oauth2_provider',) add oauth2 urls to your urls.py 1234urlpatterns = [ ... url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')),] Sync your database 1$ python manage.py migrate oauth2_provider other params configin settings.py 1234567891011OAUTH2_PROVIDER = { 'SCOPES': { 'read': 'Read scope', 'write': 'Write scope', }, 'CLIENT_ID_GENERATOR_CLASS': 'oauth2_provide ...
阅读全文 »

git常用命令总结

发表于 2015-07-21 | 分类于 git | 阅读次数:
版本控制系统(VCS) 版本控制系统(Version Control System)是一种记录一个或若干文件内容变化历史的系统。 集中化的版本控制系统(CVS,SVN)* 分布式版本控制系统(Git) Git 的诞生 Git是目前世界上最先进的分布式版本控制系统(没有之一) 好不好用,看看它的开发者是谁就知道了:Linux之父 Linus Torvalds Linux内核社区原本使用的是名为BitKeeper的商业化版本控制工具,2005年,因为社区内有人试图破解BitKeeper的协议,BitMover公司收回了免费使用BitKeeper的权力; Linus原本可以出面道个歉,继续使用BitKeeper,然而并没有… Linus大神仅用了两周时间,自已用C写了一个分布式版本控制系统,于是Git诞生了! Git 与GitHub Git: 是一种开源的版本控制系统,可以高效的管理项目版本,同时也是一种协议; GitHub: 是一个面向开源及私有软件项目的托管平台, 私有项目收费; GitLab: 社区版相当于私有版的github,可以自己搭建GitLab仓库服务器,企业版收费; Gitee:码云(gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管; linus大叔* Git基本原理 git add files 把当前文件放入暂存区域。 git commit 给暂存区域生成快照并提交。 git reset – files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。 git checkout – files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。 git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行git comm ...
阅读全文 »

django migrate

发表于 2015-06-14 | 分类于 django | 阅读次数:
django migrate12345# 删除本地migrate文件rm apps/*/migrations/*.pypython manage.py migrate recruitment --fake-initialpython manage.py makemigrations recruitmentpython manage.py migrate recruitment –fake-inital 会在数据库中的 migrations表中记录当前这个app 执行到 0001_initial.py ,但是它不会真的执行该文件中的 代码。 这样就做到了,既不对现有的数据库改动,而又可以重置 migraion 文件
阅读全文 »

requests库请求报SSLError

发表于 2015-04-18 | 阅读次数:
requests库请求报SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)1234567891011121314151617181920212223242526272829303132[2019-04-18 14:14:46,594] ERROR in utils: Traceback (most recent call last): File "/Users/higgs/PycharmProjects/workdir2/app_platform/utils.py", line 44, in fin res['data'] = f(*args, **kw) File "api.py", line 354, in prod_question url = upload_prod(save_file, json.dumps(res)) File "/Users/higgs/PycharmProjects/workdir2/app_platform/utils.py", line 107, in upload_prod _, info = put_data(token, key, data=f) File "/Users/higgs/.pyenv/versions/app_platform/lib/python2.7/site-packages/qiniu/services/storage/uploader.py", line 31, in put_data return _form_put(up_token, key, data, params, mime_type, crc, progress_handler, fname) File ...
阅读全文 »

python四舍五入精度问题

发表于 2015-04-15 | 阅读次数:
python四舍五入中的坑12345678910print(round(1.113, 2))print(round(1.115, 2))print(round(1.125, 2))print(round(1.375, 2))out:1.111.111.121.38 round四舍五入时遇到进位为5的情况,就会导致不准确的情况,归根结底是计算机存储浮点数的问题 1234567891011from decimal import Decimalprint(Decimal(1.113))print(Decimal(1.115))print(Decimal(1.125))print(Decimal(1.375))out:1.1129999999999999893418589635984972119331359863281251.11499999999999999111821580299874767661094665527343751.1251.375 解决方法:加上一个不影响四舍五入的小数 python12345678910print(round(1.113+0.00000001, 2))print(round(1.115+0.00000001, 2))print(round(1.125+0.00000001, 2))print(round(1.375+0.00000001, 2))out:1.111.121.131.38
阅读全文 »

python中单例模式实现

发表于 2015-04-13 | 阅读次数:
装饰器1234567891011121314151617181920212223242526272829import loggingfrom functools import wraps# wrapperlogging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M')logger = logging.getLogger('tts')def log_func(level): def decorator(func): @wraps(func) def wrapper(*args, **kwargs): if level == 'warning': logger.warning('enter func:{}'.format(func.__name__)) else: logger.info('enter func:{}'.format(func.__name__)) return func(*args, **kwargs) return wrapper return decorator@log_func(level="warning")def foo(name='foo', k='88'): print 'i am foo:{} k:{}'.format(nam ...
阅读全文 »

flask设置永久访问token

发表于 2015-04-04 | 分类于 flask | 阅读次数:
flask设置永久访问token12345678910111213141516171819202122from flask_httpauth import HTTPTokenAuthauth = HTTPTokenAuth(scheme='Bearer') tokens = { "12aaa0c64bc5dbc2026be1071df5c0db47659d45": "user1", "23370cec94ddc0dc2a50432a90500b2bc55d014e": "user2", } @auth.verify_token def verify_token(token): g.user = None if token in tokens: g.user = tokens[token] return True return False class ContactOcr(Resource): @auth.login_required def post(self): logger.info(u'user:{} reconginzed: {}'.format(g.user, res)) return {'res': res}, 200
阅读全文 »
1…1920
Kevin Huang

Kevin Huang

197 日志
24 分类
84 标签
RSS
E-Mail
友情链接
  • 董伟明
  • FOOFISH
  • 酷壳
  • 知道创宇
  • 阮一峰
  • 求索
  • Sdandroid
  • 全栈实验室
© 2023 Kevin Huang 豫ICP备16018730号-1
本站访客数 人次 本站总访问量 次