admin的使用
一、在admin中引入models類名稱
首先在admin.py中引入models
from .models import *
其次
admin.site.register(UserInfo) UserInfo這個是models中的類名
admin.site.register(Blog) Blog這個是Blog中的類名
admin.site.register(Tag)
二、文件上傳:
form請求:
1、obj = request.FILES.get("f") #得到一個對象
2、<form action="" method="post" enctype="multipart/form-data">
ajax請求:
1、首先實例化配置一個formdata對象;
然后一組一組鍵值對加入formdata;
(本次例子有三組鍵值對,以后以實際為主)
formdata.append("pwd",$("#pwd").val());鍵和值以逗號分隔
2、在ajax中formdata作為data的值
url:"/put_ajax/",
type:"post",
data:formdata,
用 contentType:false,processData:false,這兩個參數同時指定為false,至此整個過程結束
*******總結:我們利用一個formdata加兩個參數(contentType:false,processData:false,)解決了ajax上傳文件的問題(這個要記住)
三、JS中的$.each()
$.each()在jQuery中是一種封裝的方法,基於jQuery類方法,類似於python中的for循環
//方式1
var arr = [111,222,333]
$.each(arr,function (i, j) {
console.log(i,j)
})
結果:0 111
1 222
2 333
var d = {"name":"alex","age":"33"}
$.each(d,function (i, j) {
console.log(i,j)
})
結果:name alex
age 33
方式2
$("p").each(function () {
console.log($(this).html())
})
$("#avatar").change(function () {
var choose_file = $(this)[0].files[0];
var reader = new FileReader();//實例化閱讀器對象
reader.readAsDataURL(choose_file);
reader.onload=function () {
$("#avatar_img").attr("src",this.result) //attr不能使用set替換,set針對dom對象
}
});
四、media的配置及使用
static文件夾是用來存放靜態文件的,而media是用來存放用戶上傳的文件的
靜態文件:static: css JS img font
用戶上傳文件: media : avatar file等
1、media的配置
針對FileField,ImageField字段: avatar = models.FileField(upload_to = 'avatars/',default="/avatar/default.png") 默認會將FileField字段中的upload_to參數對應的值avatar文件下載到項目根目錄下 如果 在settings中配置了一句: MEDIA_URL="/media/" MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media") 將FileField字段中的upload_to參數對應的值avatar下載到MEDIA_ROOT路徑下
2、media的使用
使用media: settings.py MEDIA_URL="/media/" MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media") urls.py from django.views.static import serve #導入靜態文件處理的views控制包 from s1_cnblog import settings #導入項目文件夾中settings中的MEDIA_ROOT絕對路徑
re_path('media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})
html中 <img width="50" height="50" src="/media/{{ article_obj.user.avatar }}
