⒈簡述 django mvc 和 mtv
mvc:
全名是model view controller
是模型(model)-檢視(view)-控制器(controller)的縮寫
一種軟體設計典範,用一種業務邏輯、資料、介面顯示分離的方法組織**。
將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。
mvc被獨特的發展起來用於對映傳統的輸入、處理和輸出功能,在乙個邏輯的圖形化使用者介面的結構中。
mtv:
template(模板):模板語法--->將變數(資料庫資料)如何巧妙嵌入html頁面中。
view(檢視):邏輯處理
⒉django常用命令
①、建立專案命令
django-admin startproject 專案名稱
③、啟動專案命令
python manage.py runserver
預設是127.0.0.0:8000
④、修改埠號命令
python manage.py runserver 0.0.0.0:新埠號
⑤、建立虛擬環境命令
virtualenv -p python路徑 python版本 虛擬環境名稱
⑥、校驗整個django專案是否存在常見問題
python manage.py check
⑦、同步資料庫
python manage.py makemigrations
⑧、更新資料庫
python manage.py migrate
⑨、刪除資料庫所有資料(不刪除表)
python manage.py flush
⑩、啟動帶有django環境的python互動式命令列
python manage.py shell
⒊模板變數中對"點"的理解
①、字典查詢:
如果向頁面傳遞的是乙個字典型別變數
變數名.key的方式獲取值
如:student.age
②、屬性或方法查詢:
如果傳遞乙個物件
變數名.變數名
(此變數名有可能是屬性,有可能是無引數方法名稱)
如:student.get(id=)
student.all()
③、數字索引查詢:
如果傳遞乙個列表
變數名.索引
⒋常用的標籤合過濾器
①、過濾器:
default、 length、 slice、 date、 cut、 join
②、標籤:
for、 for...empty、 if、 if...else...、 if...elif...else、
load、 static、 extends、 include
⒌簡述 orm 中 get() 和 filter() 方法的區別
①、get() 方法只能查詢出唯一的一條記錄、沒有則報錯,並且返回的是乙個物件
②、filter() 方法是根據條件進行過濾,返回的是乙個 queryset 物件
⒍會話使用的技術有哪些,並且說明一下它們的區別
cookie 是由服務端生成,儲存在瀏覽器中的一段純文字資訊。
建議不要存敏感資訊(如密碼),因為電腦上的瀏覽器可能被其他人使用。
建議不要存中文漢字,可能不識別。
session是由服務端生成,預設儲存到資料庫中的一段資訊。
對於敏感、重要的資訊,建議要儲存到伺服器端,不能儲存在瀏覽器中。
cookie 儲存在瀏覽器端
session 儲存在伺服器端
設定 cookie :
# key cookie的名稱, 必填
# value cookie的值, 必填
# max_age cookie過期時間 選填(當值等於0時,關閉瀏覽器後刪除)
設定 session :
request.session[key] = value
————————————————————————————————————————
實操題:
⒈根據以下需求編寫**(請從頁面和後台編寫)
上傳並儲存到 static/images 目錄下,上傳成功後向頁面返回 ok
頁面(html):後台(views):
def demo(request):
if request.method == 'post': # 請求方式必須大寫
name = request.post.get('name') # 獲取提交過來的內容
pwd = request.post.get('pwd')
print(name, pwd)
print(request.files['photo']) # 得到的不是名稱,是乙個物件
print(type(request.files['photo'])) # photo_name = request.files['photo'].name # 獲取名稱
print(photo_name)
print(type(request.files['photo'].name))
with open(photo_name, mode='wb') as f:
# 讀取檔案中的內容
for content in request.files['photo'].chunks():
f.write(content)
return httpresponse('上傳成功了!!!')
⒉編寫**:
使用 ajax 將使用者名稱和密碼 使用 post 方式傳送到後台
點我呀
$(function(),
success: function(result),
error: function(result)})}
);}
)
⒊編寫**(前台和後台):
假設資料庫中有 100 條資料,每頁顯示 5 條資料,頁面上實現上下分頁
後端:
from django.core.paginator import paginator # 匯入分頁模組
def grrj(request):
article_obj_list = models.article.objects.all() # 查詢資料庫
my_num = 5 # 每頁資料就 5 條
paginator = paginator(article_obj_list, my_num)
count = paginator.count # 總頁數
try:
current_num = int(request.get.get('page', 1))
page_obj = paginator.page(current_num)
except:
page_obj = paginator.page(1)
return render(request, '***.html', locals())
前端:頁次:}/}每頁}總數}
DP練習題回顧(2)
我看正解好像是 n 2 的,可蒟蒻的我只能想到 n 3 不過資料水,還是讓我卡過去了 開始講演算法吧 設 f i j 為等差數列最後一項為 i 倒數第二項為 j 的方案數,這種狀態好像有點奇怪,但還是可以做滴。狀態定義出來了,轉移就簡單了,三重迴圈暴力列舉,當 a i a j a j a k 時,f...
python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...
python的練習題 Python練習題
1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...