1. 程式人生 > >100:Django完整學員管理專案、傻瓜式流程講解

100:Django完整學員管理專案、傻瓜式流程講解

在這裡插入圖片描述
(本專案使用的後臺管理模板SB Admin)

建立專案
1、啟動虛擬環境
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
建立專案
django-admin startproject STUDB
在這裡插入圖片描述
在這裡插入圖片描述
建立APP
1、切入專案目錄
2、建立app
(djangoProject) E:\pythonProject>cd STUDB

(djangoProject) E:\pythonProject\STUDB>python manage.py startapp Student
在這裡插入圖片描述
建立靜態目錄
Static
Templates
在這裡插入圖片描述
在這裡插入圖片描述
第一次開啟專案,專案的環境變數有問題
1、我們現在使用的是虛擬環境,需要安裝包到虛擬環境去安裝
在這裡插入圖片描述


2、pycharm的環境變數
注:開啟是django的專案目錄
在這裡插入圖片描述
開啟有問題
在這裡插入圖片描述
配置pycharm裡的 --> settings
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
建立資料模型在這裡插入圖片描述
建立資料模型的點
1、類名即表名 類名首字母必須大寫
2、類名不要複數 admin會自動加
3、str 方法必須返回字串

程式碼如下
\STUDB\Student\models.py
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length = 32)
password = models.CharField(max_length=32)
email = models.EmailField()
def str

(self):
return self.username
class Student(models.Model):
nickname = models.CharField(max_length = 32)
age = models.IntegerField()
gender = models.CharField(max_length = 8)
photo = models.ImageField(upload_to = “static/image”)
phone = models.CharField(max_length = 32)
email = models.EmailField()
address = models.CharField(max_length = 64)
classes = models.CharField(max_length = 32)
project = models.CharField(max_length = 32)
score = models.CharField(max_length = 8)
def str
(self):
return self.nickname
(注意程式碼格式。)
配置settings
在這裡插入圖片描述
安裝APP
在這裡插入圖片描述
模板檔案路徑
在這裡插入圖片描述
資料庫配置
預設為sqllite
在這裡插入圖片描述
若使用Mysql
在這裡插入圖片描述
靜態配置
在這裡插入圖片描述
對於資料庫同步,我們需要安裝的依賴包
1、Mysql資料庫需要安裝pymysql
pip install pymysql
在這裡插入圖片描述
2、ImageFiled欄位需要pillow
Pip install pillow
在這裡插入圖片描述
3、如果遇到mysql資料庫,並且python版本為3版本需要調整PYmysql的匯入
在這裡插入圖片描述
資料庫同步
新版本 >= 1.9
老版本 < 1.9

建立資料庫 ,charset=utf8

1、語法檢測
python manage.py check(validate)
在這裡插入圖片描述
2、資料庫語句生成
python manage.py makemigrations
在這裡插入圖片描述
3、同步資料庫
python manage.py migrate(syncdb)
在這裡插入圖片描述
建立admin超級使用者
Django 2版本之前預設建立後臺超級使用者,2.0之後,我們需要藉助命令
在這裡插入圖片描述
密碼要注意,是不顯示的
在這裡插入圖片描述

建立靜態檔案
1、Base
2、Register
3、Login
4、StudnetList
5、Student
6、Index
在這裡插入圖片描述
在這裡插入圖片描述
為了方便修改,先指出base頁
編寫檢視函式
在這裡插入圖片描述
路由指出檢視
在這裡插入圖片描述
啟動專案,檢視效果
在這裡插入圖片描述
樣式丟失,修改靜態檔案的路徑
在這裡插入圖片描述
效果如下
在這裡插入圖片描述
然後修改檔案和內容,並改名為base在這裡插入圖片描述
效果如下
在這裡插入圖片描述
新增base.html的塊兒標籤
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
注:可以刪除base的檢視和路由
首頁先出
1、建立首頁檔案
在這裡插入圖片描述
2、繼承模板
首先選擇繼承模板
選擇自己獨立的內容
在這裡插入圖片描述
3、加入首頁自己的內容
在這裡插入圖片描述
在這裡插入圖片描述
Index的檢視和路由
在這裡插入圖片描述

在這裡插入圖片描述
開始註冊頁
1、修改註冊頁樣式,並且將註冊頁釋出(views+urls)
在這裡插入圖片描述
在這裡插入圖片描述
Register
1、提交表單
1、檢視form表單,新增
1、Action
2、Method
3、Csrf_token 如果是post
在這裡插入圖片描述
4、Input name
在這裡插入圖片描述
5、Submit在這裡插入圖片描述
編寫後臺儲存邏輯
1、後臺接受資料
2、資料處理
密碼加密
在這裡插入圖片描述
3、資料儲存
檢視
在這裡插入圖片描述
2、校驗郵箱是否重複
搭建ajax結構
在這裡插入圖片描述
後端建立ajax響應檢視
在這裡插入圖片描述
指出路由在這裡插入圖片描述
完成前端ajax的請求地址和觸發事件在這裡插入圖片描述
在這裡插入圖片描述
由於程式碼的問題:
1、前端
\STUDB\templates\register.html
在這裡插入圖片描述
在這裡插入圖片描述
2、檢視程式碼
在這裡插入圖片描述
在這裡插入圖片描述
登入:
1、處理頁面(views+urls)
def login(request):
if request.method==“POST” and request.POST:
name=request.POST.get(“firstName”) #獲取ajax提交的使用者名稱
inpassword = getPassword(request.POST.get(“inputPassword”))
user=UserInfo.objects.filter(firstname=name) #匹配資料庫中的name
# user=UserInfo.objects.filter(firstname=name).first() #匹配資料庫中的name
# response.set_cookie(“firstName”, user.firstname)
if user :
mypass=user[0].password
if inpassword == mypass :
response = HttpResponseRedirect("/index/")
response.set_cookie(“firstName”,user[0].firstname)
look = ‘密碼正確’
return response
else:
look = ‘密碼錯誤’
return render_to_response(‘login.html’, locals())
else:
look = ‘使用者不存在’
time.sleep(1)
return HttpResponseRedirect(’/register/’)
return render(request,‘login.html’,locals())
URLS:
在這裡插入圖片描述
2、post請求
在這裡插入圖片描述
在這裡插入圖片描述
3、判斷邏輯
4、Cookie的問題
在這裡插入圖片描述

登入註冊介面有需要的可以留言。
在這裡插入圖片描述
在這裡插入圖片描述
專案內容較為簡潔。有需要請看專欄
https://blog.csdn.net/weixin_43582101/column/info/32178