最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python,Django實現(xiàn)的淘寶客登錄功能示例

 更新時間:2019年06月12日 10:27:18   作者:輕舞肥羊  
這篇文章主要介紹了python,Django實現(xiàn)的淘寶客登錄功能,結(jié)合實例形式分析了Django框架基于淘寶接口的登錄功能相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了python,Django實現(xiàn)的淘寶客登錄功能。分享給大家供大家參考,具體如下:

在整理python,django資料的時候,發(fā)現(xiàn)了這個東西,也許是當初某位網(wǎng)友或者朋友發(fā)過來參考或者一起探討修改的東西,現(xiàn)在不記得了,也許taobao的接口都變了也有可能,但總體來說還是有參考價值的,主要是做淘寶客客或者返利網(wǎng)會用到taobao登錄而用的.

參考代碼如下:

#!/usr/bin/python
#coding:utf-8
import datetime, urllib, base64, random
from hashlib import md5
from django.conf import settings
from django.contrib import auth
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render
from app.taobao.backends import TaobaoBackend
from app.taobao.models import User as taobao_user
from app.taobao.forms import UserOnceChange
from pyapi.taobao.top import Request
def authenticated(request, template):
  if request.method == 'POST':
    form = UserOnceChange(request=request, data=request.POST)
    if form.is_valid():
      request.user.username = form.cleaned_data['username']
      password = form.cleaned_data.get('password', None)
      if password:
        request.user.set_password(form.cleaned_data)
      request.user.save()
      #更新應(yīng)用用戶綁定
      tb_user = request.user.taobao.all()[0]
      tb_user.has_bind_user=True
      tb_user.save()
      return HttpResponseRedirect(reverse('user'))
  top_session = request.GET.get('top_session', None)
  top_parameters = request.GET.get('top_parameters', None)
  top_sign = str(request.GET.get('top_sign', None))
  #解析 top parameters
  if top_parameters:
    back_parameters = base64.decodestring(urllib.unquote(top_parameters))
    infos = dict(k.split("=") for k in back_parameters.split("&"))
    username = infos.get('visitor_nick', None)
    visitor_id = infos.get("visitor_id", None)
    # validate sign 認證返回值中的簽名
    local_sign_str = '%s%s%s%s' % (settings.TAOBAO_APP_KEY,
                    top_parameters,
                    top_session,
                    settings.TAOBAO_APP_SECRET)
    local_sign = base64.encodestring(md5(local_sign_str).digest())
    #注意 base64 encode后,字符串最后會有 \n 符, 因此需要清除才能驗證
    if top_sign == local_sign.strip(): # 清除 \n
      # 創(chuàng)建/返回淘寶賬戶
      tb_user, tb_user_created = taobao_user.objects.get_or_create(id=int(visitor_id),
                     nick=username)
      #建立系統(tǒng)用戶, 用戶名存在則創(chuàng)建隨機數(shù)擴展
      if tb_user.user_id is None:
        try:
          User.objects.get(username=username)
          django_user_username = username
          tb_user.has_bind_user = True
        except:
          django_user_username = '%s_%s' % (username, random.randint(1000, 10000))
        django_user, django_user_created = User.objects.get_or_create(username=django_user_username)
        if django_user_created:
          django_user.set_password(visitor_id)
          django_user.save()
        tb_user.user = django_user
      # 保存返回的信息:過期時間 token ts等
      tb_user.expires_in = datetime.datetime.now() + datetime.timedelta(seconds=int(infos.get("expires_in", 0)))
      tb_user.ts = infos.get("ts", '')
      tb_user.refresh_token = infos.get("refresh_token", '')
      tb_user.save()
      # update user profile in taobao auth backend
      user = auth.authenticate(id=tb_user.id, nick=tb_user.nick)
      if user:
        auth.login(request, user)
        #如果應(yīng)用賬戶沒有綁定系統(tǒng)用戶,則用戶第一次時可以修改用戶名
        if not tb_user.has_bind_user:
          form = UserOnceChange(request=request,
                     initial={'username':tb_user.user.username,
                          'password':tb_user.id})
          return render(request, template, locals())
  return HttpResponseRedirect(settings.TAOBAO_AUTH_URL)

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • Python中調(diào)用其他程序的方式詳解

    Python中調(diào)用其他程序的方式詳解

    這篇文章主要介紹了Python中調(diào)用其他程序的方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • python如何制作英文字典

    python如何制作英文字典

    這篇文章主要為大家詳細介紹了python如何制作英文字典,添加單詞的意思,查詢,退出,建立單詞文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python實現(xiàn)高斯判別分析算法的例子

    python實現(xiàn)高斯判別分析算法的例子

    今天小編就為大家分享一篇python實現(xiàn)高斯判別分析算法的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python-OpenCV教程之圖像的位運算詳解

    Python-OpenCV教程之圖像的位運算詳解

    圖像的位運算是指對圖像的數(shù)值按照二進制值逐位進行取反、與、或、異或操作,本文就帶大家了解相關(guān)知識,需要的朋友可以參考下
    2021-06-06
  • Python中五種列表拷貝的方法

    Python中五種列表拷貝的方法

    這篇文章主要介紹了Python中五種列表拷貝的方法,在Python中,我們經(jīng)常會遇到需要拷貝列表的情形,下面針對常用的列表拷貝方法進行介紹和總結(jié),希望可以給大家?guī)砀喔行缘恼J識
    2022-02-02
  • python求質(zhì)數(shù)列表的例子

    python求質(zhì)數(shù)列表的例子

    今天小編就為大家分享一篇python求質(zhì)數(shù)列表的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python面向?qū)ο蟮膬?nèi)置方法梳理講解

    Python面向?qū)ο蟮膬?nèi)置方法梳理講解

    面向?qū)ο缶幊淌且环N編程方式,此編程方式的落地需要使用“類”和 “對象”來實現(xiàn),所以,面向?qū)ο缶幊唐鋵嵕褪菍?nbsp;“類”和“對象” 的使用,今天給大家介紹下python 面向?qū)ο箝_發(fā)及基本特征,感興趣的朋友一起看看吧
    2022-10-10
  • python 快速把超大txt文件轉(zhuǎn)存為csv的實例

    python 快速把超大txt文件轉(zhuǎn)存為csv的實例

    今天小編就為大家分享一篇python 快速把超大txt文件轉(zhuǎn)存為csv的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python裝飾器與遞歸算法詳解

    python裝飾器與遞歸算法詳解

    本文給大家詳細講解了python中的裝飾器與遞歸算法,有需要的小伙伴可以來參考下,希望對大家學習Python能夠有所幫助
    2016-02-02
  • 用python實現(xiàn)監(jiān)控視頻人數(shù)統(tǒng)計

    用python實現(xiàn)監(jiān)控視頻人數(shù)統(tǒng)計

    今天教各位小伙伴學習怎么用python實現(xiàn)監(jiān)控視頻人數(shù)統(tǒng)計,文中有非常詳細的代碼示例,對正在學習python的小伙伴有很大的幫助,需要的朋友可以參考下
    2021-05-05

最新評論

陕西省| 满洲里市| 体育| 清新县| 长顺县| 黄大仙区| 丹东市| 贵定县| 镇远县| 奉化市| 睢宁县| 黑水县| 冀州市| 平阳县| 监利县| 淳化县| 玉田县| 松江区| 衡山县| 库尔勒市| 玉山县| 江津市| 邯郸县| 怀宁县| 陕西省| 永胜县| 固镇县| 延长县| 琼海市| 会宁县| 大城县| 思南县| 宁陵县| 宜城市| 婺源县| 新巴尔虎左旗| 宝兴县| 淮安市| 罗源县| 荥经县| 田林县|