mxonline实战3,编写首页及用户登录页面1
生活随笔
收集整理的這篇文章主要介紹了
mxonline实战3,编写首页及用户登录页面1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對應github地址:首頁和用戶登陸1 一. 顯示首頁 ? 1. 修改mxonline/setttings.py 在TEMPLATES代碼塊修改DIRS為 'DIRS': [os.path.join(BASE_DIR, 'templates')], ? 2. 修改mxonline/urls.py,添加一行首頁path,并導入TemplateView ? ? 3. 在templates文件夾中加入index.html文件, 此時就可以通過http://127.0.0.1:8000訪問首頁了,但是沒有樣式 ? 4. 新建static目錄,把靜態資源文件放到此目錄下,并在mxonline/settings.py下添加設置 并且把index.html中的所有".." 替換成"/static" , 我沒加前面的"/"也可以,經驗證,可以在IE中正常顯示樣式,但是在chrome瀏覽器中樣式是亂的 ? ? ? 二. 顯示login頁面 ? 1. 拷貝login.html到templates目錄, 修改login.html中的".."為"static" 2. 在mxonline/urls.py中添加 3. 查找templates/index.html中登錄字樣,將其中的href="login.html"修改為href="/login/",并取消前后端的注釋 4. 接著第3步的位置,點擊緊接著下面一行的<div class="personal">前面的減號,收起代碼段。暫時注釋掉個人中心的代碼,也就是在首頁不顯示用戶登陸信息,最好先從后面寫注釋 ? 注意:pycharm中可以用crtl+shift+r進行全局替換 ? ? ? ? 三. 用戶登陸 ? Django用戶驗證可參考:https://www.cnblogs.com/linxiyue/p/4060213.html ? ? 1. 修改mxonline/urls.py,在原基礎上修改為如下 ? ? 2. 新建users/urls.py,在多應用的情況下可讓結構更加清晰 ? ? 3. 編寫users/views.py views.py文件就是定義一個或多個函數,功能是:接收request的請求對象,處理后返回response對象 ? 注意: 1) 這里view函數不能定義為login, 否則會與django.contrib.auth導入的login重名,導致遞歸調用自己 2)驗證用戶名和密碼user = authenticate(user_name=username, pass_word=password)中,其中user_name和pass_word是authenticate()的參數,接收上面變量username, password的值 ? ? 3) if user is not None and user.is_active中, user.is_active表示用戶是否活躍,默認True。一般不想刪除用戶,而是將用戶的is_active設為False 4) 這里還沒定義用戶中心頁面,所以驗證成功還是返回首頁index.html,后面頁面寫好后,會修改 ? ? 4. 修改templates/index.html頁面中的form標簽 修改action="/login/" 在</form>前加上{% csrf_token %} ? ? 5. 使用if模板標簽來判斷用戶是否登陸,如果登陸就顯示用戶,如果沒登陸就顯示登陸,注冊選項。 需要在templates/index.html中修改為如下 其中<div class="personal"...>為顯示用戶登陸時的效果,<div class="wp"...>為用戶沒登陸時的效果,使用request.user.is_authenticated來判斷用戶是否登陸 ? ? ? 6. 使用戶使用郵箱地址也能登陸 1)在users/views.py中定義一個類customBackend() 還需要導入UserProfile,Q以及ModelBackend from django.db.models import Q from .models import UserProfile from django.contrib.auth.backends import ModelBackend ? 2)在mxonline/settings.py中添加 ? ? 7. 用戶名或者密碼錯誤時,在login.html頁面上給出提示信息 1)在users/views.py的 def my_login(request)中,修改驗證不成功時的return語句,在{}中添加內容 2)修改templates/login.html的79行, 這個就是用來顯示錯誤提示信息的 添加常量模板{{ msg }} ? 這時候因為logout功能還沒寫,所以需要先登進xadmin后臺管理頁面注銷掉當前后,再進入首頁點擊登陸,來驗證此功能 ? ? ? ?
轉載于:https://www.cnblogs.com/regit/p/9482463.html
總結
以上是生活随笔為你收集整理的mxonline实战3,编写首页及用户登录页面1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划:记忆化搜索
- 下一篇: 向往的生活---考研路上的励志鸡汤