<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                配置models.py文件 ~~~ # _*_ coding:utf-8 * _*_ from __future__ import unicode_literals from datetime import datetime from django.db import models from django.contrib.auth.models import User#引入自帶User # # # Create your models here. #新增用戶注冊字段 class UserProfile(models.Model): #OneToOneField通過user字段與User類關聯,一對一 user = models.OneToOneField(User, unique=True, verbose_name=u"帳號") birth = models.DateField(blank=True, null=True, verbose_name=u"生日") phone = models.CharField(max_length=11, null=True, verbose_name=u"手機號") class Meta: verbose_name = u"用戶信息" verbose_name_plural = verbose_name def __str__(self): return 'user{}'.format(self.user.username) #新增用戶信息 class UserInfo(models.Model): user = models.OneToOneField(User, unique=True) shool = models.CharField(max_length=100, blank=True) profession = models.CharField(max_length=100, blank=True) address = models.CharField(max_length=100, blank=True) aboutme = models.TextField(blank=True) def __str__(self): return "user:{}".format(self.user.username) ~~~ 配置views.py文件 ~~~ # _*_ coding:utf-8 * _*_ from django.shortcuts import render, redirect#redirect跳轉 #引入系統模塊 from django.http import HttpResponse #引入login內置用戶管理 from django.contrib.auth import authenticate, login #引入forms類 from .forms import LoginFrom, RegistrationFrom, UserProfileForm #UserProfileForm新增用戶字段 #新增用戶信息,required引入裝飾器,判斷用戶登錄 from django.contrib.auth.decorators import login_required from .models import UserProfile, UserInfo from django.contrib.auth.models import User # Create your views here. #登錄函數 def user_login(request): #method是HttpRequest對象的一個常用屬性,可返回POST、GET if request.method == "POST": login_form = LoginFrom(request.POST) #is_valid驗證傳入數據是否合法性 if login_form.is_valid(): #cleaned_data引用一個字典類型數據 cd = login_form.cleaned_data #authenticate檢驗數據庫帳號密碼是否正確 user = authenticate(username=cd['username'], password=cd['password']) #login引入的login()函數,已語句user實例對象作為參數,實現用戶登錄,登錄后調用session if user: #判斷正確返回HttpResponse login(request, user) #redirect跳轉 return redirect("blog:blog_title") #return HttpResponse("Wellcome YOU") else: return HttpResponse("Sorry") if request.method == "GET": login_form = LoginFrom() return render(request, "account/login.html", {"form":login_form}) #注冊函數,原始版 # def register(request): # if request.method == "POST": # #用這些數據實例化一個用戶注冊表單 # user_form = RegistrationFrom(request.POST) # # 驗證數據的合法性 # if user_form.is_valid(): # #.save(commit=False)數據不保存數據庫,僅生成數據對象, # new_user = user_form.save(commit=False) # #.cleaned_data['password']校驗密碼然后保存數據庫 # new_user.set_password(user_form.cleaned_data['password']) # #保存數據庫 # new_user.save() # #redirect跳轉 # return redirect("blog:blog_title") # # return HttpResponse("successfully") # else: # return HttpResponse("sorry,your can not register") # else: # # 請求不是 POST,構造一個空表單 # user_form = RegistrationFrom() # # 渲染模板 # # 如果不是 POST 請求,則渲染的是一個空的表單 # # 如果用戶通過表單提交數據,但是數據驗證不合法,則渲染的是一個帶有錯誤信息的表單 # return render(request, "account/register.html", {"form": user_form}) #注冊函數,新增字段 def register(request): if request.method == "POST": user_form = RegistrationFrom(request.POST) #新增字段 userprofile_form = UserProfileForm(request.POST) #新增*userprofile_form.is_valid()驗證數據 if user_form.is_valid()*userprofile_form.is_valid(): new_user = user_form.save(commit=False) new_user.set_password(user_form.cleaned_data['password']) new_user.save() #新增字段 new_profile = userprofile_form.save(commit=False) new_profile.user = new_user new_profile.save() UserInfo.objects.create(user=new_user)##新增個人信息 return redirect("blog:blog_title") # return HttpResponse("successfully") else: return HttpResponse("sorry,your can not register") else: user_form = RegistrationFrom() return render(request, "account/register.html", {"form": user_form, "profile": UserProfileForm}) #新增個人信息 @login_required(login_url='account:user_login') def myself(request): user = User.objects.get(username=request.user.username) userprofile = UserProfile.objects.get(user=user) userinfo = UserInfo.objects.get(user=user) return render(request, "account/myself.html", {"user": user, "userinfo": userinfo, "userprofile": userprofile}) ~~~ 配置urls.py文件 ~~~ # _*_ coding:utf-8 _*_ __author__ = 'canmeng' __date__ = '2018/1/7 19:16' from django.conf.urls import url #引入app項目 view from .import views from django.conf import settings #引入系統自動登錄views from django.contrib.auth import views as auth_views urlpatterns = [ url(r'^login/$', views.user_login, name="user_login"),#自建系統登錄 #url(r'^login/$', auth_views.login, name="user_login"),#引入系統自帶views登錄 # url(r'^logout/$', auth_views.logout, name="user_logout"),#引入系統自帶views退出 #用戶退出,定義連接"template_name": "account/logout.html" url(r'^logout/$', auth_views.logout, {"template_name": "account/logout.html"}, name="user_logout"),#退出登錄 url(r'^register/$', views.register, name="register"),#注冊 url(r'^myself/$', views.myself, name="myself"),#注冊 ] ~~~ myself.html樣板 ~~~ {% extends "base.html" %} {% block title %}用戶信息{% endblock %} {% block content %} <div> <div>用戶名</div> <div>{{ user.username }}</div> </div> <div> <div>郵箱</div> <div>{{ user.email }}</div> </div> <div> <div>生日</div> <div>{{ userprofile.birth }}</div> </div> <div> <div>電話</div> <div>{{ userprofile.phone }}</div> </div> <div> <div>畢業學校</div> <div>{{ userinfo.shool }}</div> </div> <div> <div>職業</div> <div>{{ userinfo.profession }}</div> </div> <div> <div>地址</div> <div>{{ userinfo.address }}</div> </div> <div> <div>個人介紹</div> <div>{{ userinfo.aboutme }}</div> </div> {% endblock %} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看