Django 中admin添加数据并渲染主页
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | / / 方式 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()) }) |
1 2 3 4 5 6 7 8 | $( "#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的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 | 针对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的使用
1 2 3 4 5 6 7 8 9 10 | 使用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})<br><br> html中 <img width="50" height="50" src="/media/{{ article_obj.user.avatar }} |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步