02-登錄功能的實現(xiàn)

一 登錄頁面的設計

  • views中先定義login構造登錄上下文

  • views中定義login_handle對登錄傳入的數(shù)據(jù)做處理及設置cookie值等功能

     views.py
     def login(request):
         uname = request.COOKIES.get('uname','')
         context = {'title':'用戶登錄','erorr_name':0,'error pwd ':0,'uname':uname}
         return  render(request,'df_user/login.html',context)
    
    
     def login_handle(request):
         # 接收請求信息
         get = request.POST
         uname = get.get('username')
         upwd = get.get('pwd')
         jizhu = get.get('jizhu', 0)
         # 根據(jù)用戶名查詢對象
         users = UserInfo.objects.filter(uname=uname)
         # print uname
         # 判斷如果未查到則用戶名錯,查到再判斷密碼是否正確,正確則轉到用戶中心
         if len(users) == 1:
             s1 = sha1()
             s1.update(upwd.encode('utf8'))
             #登錄帶cookie值   必須 red = HttpResponseRedirect    red.set_cookie  renturn red
             if s1.hexdigest() == users[0].upwd:
                 red = HttpResponseRedirect('/user/info')
                 # count = CartInfo.objects.filter(user_id=users[0].id).count()
    
                 # print '*'*10
                 # print count
                 # 記住用戶名
                 if jizhu != 0:
                     red.set_cookie('uname', uname)
                 else:
                     red.set_cookie('uname', '', max_age=-1)
                 request.session['user_id'] = users[0].id
                 request.session['user_name'] = uname
                 # request.session['count'] = count
                 return red
             else:
                 context = {'title': '用戶登錄', 'error_name': 0, 'error_pwd': 1, 'uname': uname}
                 return render(request, 'df_user/login.html', context)
         else:
             context = {'title': '用戶登錄', 'error_name': 1, 'error_pwd': 0, 'uname': uname }
             return render(request, 'df_user/login.html', context)
    

二 設計登錄后的用戶info頁面

  • info的頁面要顯示郵箱蒲牧,用戶姓名仿粹,等信息杯道,所以在views中的info構造context上下文
  • 構造用戶的收貨地址垛膝,這里需要用戶全部信息锤灿,save保存后把數(shù)據(jù)進行傳輸赘艳。
  • 設計注銷用戶的功能酌毡,這里清除cookie
views.py
def logout(request):
      request.session.flush()
      return redirect('/')
 
def site(request):
    user = UserInfo.objects.get(id=request.session['user_id'])
    if request.method == 'POST':
        post = request.POST
        user.ushou = post.get('ushou')
        user.uaddress = post.get('uaddress')
        user.uphone = post.get('uphone')
        user.uyoubian = post.get('uyoubian')
        user.save()
    context = {'title': '用戶中心', 'user': user,'page_name':1,'site':1}
    return render(request, 'df_user/user_center_site.html', context)

三設計用戶提交訂單的頁面

  • 此頁面用戶展示用戶提交的訂單,由購物車頁面下單后轉調(diào)過來蕾管,也可以從個人信息頁面查看
  • 根據(jù)用戶訂單是否支付枷踏、下單順序進行排序
def user_center_order(request, pageid):
    """
    # 此頁面用戶展示用戶提交的訂單,由購物車頁面下單后轉調(diào)過來娇掏,也可以從個人信息頁面查看
    # 根據(jù)用戶訂單是否支付呕寝、下單順序進行排序
    # """
    #
    uid = request.session.get('user_id')
    #訂單信息,根據(jù)是否支付婴梧、下單順序進行排序
    orderinfos = OrderInfo.objects.filter(
        user_id=uid).order_by('zhifu', '-oid')
    #
    # 分頁
    #獲取orderinfos list  以兩個為一頁的 list
    paginator = Paginator(orderinfos, 2)
    #獲取 上面集合的第 pageid 個 值
    orderlist = paginator.page(int(pageid))
    #獲取一共多少 頁
    plist = paginator.page_range
    #3頁分頁顯示
    qian1 = 0
    hou = 0
    hou2 = 0
    qian2 = 0
    # dd = dangqian ye
    dd = int(pageid)
    lenn = len(plist)
    if dd>1:
        qian1 = dd-1
    if dd>=3:
        qian2 = dd-2
    if dd<lenn:
        hou = dd+1
    if dd+2<=lenn:
        hou2 = dd+2
    #
    #
    #
    # 構造上下文
    context = {'page_name': 1, 'title': '全部訂單', 'pageid': int(pageid),
               'order': 1, 'orderlist': orderlist, 'plist': plist,
               'pre':qian1,'next':hou,'pree':qian2,'lenn':lenn,'nextt':hou2}

    return render(request, 'df_user/user_center_order.html',context)
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末下梢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子塞蹭,更是在濱河造成了極大的恐慌孽江,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件番电,死亡現(xiàn)場離奇詭異岗屏,居然都是意外死亡,警方通過查閱死者的電腦和手機漱办,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門这刷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娩井,你說我怎么就攤上這事暇屋。” “怎么了洞辣?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵咐刨,是天一觀的道長。 經(jīng)常有香客問我扬霜,道長定鸟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任著瓶,我火速辦了婚禮联予,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己躯泰,他們只是感情好谭羔,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著麦向,像睡著了一般瘟裸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诵竭,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天话告,我揣著相機與錄音,去河邊找鬼卵慰。 笑死沙郭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的裳朋。 我是一名探鬼主播病线,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲤嫡!你這毒婦竟也來了送挑?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤暖眼,失蹤者是張志新(化名)和其女友劉穎惕耕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诫肠,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡司澎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了栋豫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挤安。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丧鸯,靈堂內(nèi)的尸體忽然破棺而出漱受,到底是詐尸還是另有隱情,我是刑警寧澤骡送,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站絮记,受9級特大地震影響摔踱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怨愤,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一派敷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦篮愉、人聲如沸腐芍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猪勇。三九已至,卻和暖如春颠蕴,著一層夾襖步出監(jiān)牢的瞬間泣刹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工犀被, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留椅您,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓寡键,卻偏偏與公主長得像掀泳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子西轩,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理员舵,服務發(fā)現(xiàn),斷路器遭商,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 目錄Cookie機制什么是CookieCookie的不可跨域名性Unicode編碼:保存中文BASE64編碼:保存...
    Tomatoro閱讀 16,957評論 7 186
  • 作為UI設計師固灵,我們經(jīng)常在做設計稿的時候需要做一些移動端的banner,要求經(jīng)常是“你看著來劫流,看上去有格調(diào)巫玻、高大上...
    Jkarakorum閱讀 2,262評論 9 60
  • 其實很多人喜歡說自己有強迫癥,很糾結一件事情會發(fā)展成為強迫癥祠汇,對某些細節(jié)過分苛求是強迫癥仍秤,總懷疑自己沒有鎖好車門和...
    伊米醬閱讀 1,271評論 0 0
  • 一個談人性,一個談學識可很。 兩個都有深度的人
    黑騎士_路西法_丸子閱讀 202評論 0 0