django簡單項目小總結(實現登錄之后跳轉到首頁)


一、安裝和卸載django

首先安裝django,cmd在命令行窗口執行如下命令即可

pip3 install django==1.11.11  (指定django版本),安裝的過程會慢一點(或者pip install django==1.11.11該命令也可以安裝)

pip3 uninstall django (卸載django)

pip3 list 查看當前Python解釋器安裝了哪些第三方包

二、創建django項目

 File-New Project

 

創建完成后,初始如下:app01里面主要寫大項目的不同功能,templates下面放html文件

如果一個app01不夠用,想再創建一個app02的話,需要命令行方式,創建完之后需要在django項目中注冊一下

首先進入到項目的目錄下,執行python manage.py startapp app02,回車

 

 

 執行完命令后,會發現多了個app02,目錄結構和app01一樣

 

在django項目中進行注冊,mysite下面的settings文件中進行

 

 

 

 

 三、開始寫django項目

第一步、django項目先從mysite下的urls開始寫起

 

 

 第二步,去app下的views模塊寫函數

 

 

 第三步,在templates目錄下寫html頁面

 

 

 第四步,使用bootstrap寫頁面樣式

1)先在mysite項目下,創建static文件下,再下載bootstrap-3.3.7,放到static文件夾下

2)再在mysite下的settings中寫上如下:

#靜態文件實際保存的目錄是哪一些
STATICFILES_DIRS=[
os.path.join(BASE_DIR, 'static')
]

3)再在html文件中引用bootstrap,link標簽

 

 

 

4)https://v3.bootcss.com/,Bootstrap下選擇全局CSS樣式

 

 

 直接復制想要的樣式,去掉沒用的,改改就可以了

 

 

 

 

例子如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>歡迎登陸</title>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7/css/bootstrap.min.css">
</head>
<body>

<h1>開業了 </h1>
<div class="container">
    <div class="row">
        <div class="col-md-4 col-md-offset-4">
           
    
                這塊放置bootstrap復制進來的樣式


        </div>
    </div>
</div>


</body>
</html>

第五步,樣式問題解決之后,我們開始優化登錄頁面輸入用戶名密碼之后跳轉到首頁

獲得登錄頁面是get請求,輸入用戶名和密碼之后,點擊提交是post請求,我們根據不同的請求方式,重新寫登錄函數。

1)首先在login.html上寫上請求方式

 

 

2)app01下的views函數

2.1)

from django.shortcuts import HttpResponse,render,redirect

# Create your views here.


def login(request):
    '''
    給用戶返回一個頁面,用來做登陸
    :param request:
    :return:
    '''
    print(request.method)
    if request.method == 'POST':
            print(request.POST)  #是一個大字典
            username=request.POST.get("username","")  #從大字典中取值,取不到默認為空,不會報錯
            pwd=request.POST.get("password","")
            if username == "harry" and pwd =="123":
                return redirect('/index/')
            else:
                return HttpResponse("登錄失敗!")
    return render(request, 'login.html')
View Code
函數中引入django常用的這三個:HttpResponse,render,redirect
from django.shortcuts import HttpResponse,render,redirect

 

小知識點講解:

request.POST打印出的結果是個字典:<QueryDict: {'username': ['haxxy'], 'password': ['12XXX']}>

這個字典里面為什么是username和password,這是因為login.html文件中,form表單中用戶名name屬性:name="username,密碼的name屬性:name="password"

 

 

 

 

 2.2)寫首頁樣式(templates下)和函數(app01下的views中)

def index(request):
return render(request,'index.html')

 

四、遇到問題,如何解決

 如果輸入用戶名和密碼之后,出現如下頁面(403):

 

 

 解決辦法:mysite下的settings下,找到MIDDLEWARE下的# 'django.middleware.csrf.CsrfViewMiddleware',注釋掉即可

 

 五、知識講解

1)Django項目是如何知道去templates下面找html文件的?原因看截圖

 

 

 

 

六、從網上下載一個登錄頁面,如何用到自己的django項目中?

舉例:從網上下載了一個登錄頁面,加壓后有如下的文件:

 

 

那么在static文件下創建一個文件夾如login,login文件夾下創建css和img,把styles.css文件放到新創建的css文件夾下,把bg-image.jpeg圖片放到img下面,

把index1.html文件拷貝到templates文件夾下。

1)記得改css下的圖片路徑,某則頁面找不到圖片。如下圖,可以更換圖片:

 

 

2)index1.html(我的項目里,把index1.html改名為login.html)里面,需要改css的加載路徑:

 

 

 

 如此就實現了搬磚后的頁面效果,看頁面上哪些東西不需要的,直接刪除注釋即可!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM