一, 图片上传
-
模板层
-
上传图片(注意form表单)
-
{% load staticfiles %}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
-
展示图片
{% for course in courses %} <tr> <td>{{ course.course }}</td> <td>{{ course.user }}</td> <td><img src="{% static course.picture %}" alt="图片" width="100" height="100"></td> {% if course.user.id == t_id %} <td><a href="/delete_course/{{ course.id }}">删除</a></td> {% else %} <td>不能删除</td> {% endif %} </tr> {% endfor %}
-
-
视图层
import os from education_project.settings import STATICFILES_DIRS def post(self,request): t_id=request.session.get('t_id') taecher=models.User.objects.get(id=t_id) #通过session_id查找具体登陆的老师 course=request.POST.get('course') #课程名 picture=request.FILES.get('picture')#图片名 if picture: #如果上传图片 print('图片上传') img_name=course +'.' + picture.name.split('.')[-1] #取到后缀 print(img_name) img_path='img/' + img_name # 数据库存储的路径 with open(os.path.join(STATICFILES_DIRS[0],img_path),'wb') as fp: fp.write(picture.read()) a=models.Timetable.objects.create( course=course, user=taecher, #负责课程的老师 picture=img_path ) if a: error='添加成功' else: error='添加失败' return render(request,'add_class.html',locals())
三,分页
-
视图层
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage,InvalidPage class Index(View): def get(self,request): courses=models.Timetable.objects.order_by('-num') t_id=request.session.get('t_id') s_id=request.session.get('s_id') #分页 paginator=Paginator(courses,3) page=request.GET.get('page') try: courses=paginator.page(page) except PageNotAnInteger: #请求页数不是整数,返回第一页 courses=paginator.page(1) except InvalidPage: #请求页面不存在 return HttpResponse('找不到页面') except EmptyPage: #请求页面不在合法范围内 返回最后一页 courses=paginator.page(paginator.num_pages) # return render(request,'index.html',locals())
-
模板层
<div class="pagination" align='center'> <span class="step-links"> {% if courses.has_previous %} <a href="?page={{ courses.previous_page_number }}">上一页</a> {% endif %} <span class="current"> Page {{ courses.number }}/{{ courses.paginator.num_pages }} </span> {% if courses.has_next %} <a href="?page={{ courses.next_page_number }}">下一页</a> {% else %} <a>末页</a> {% endif %} </span> </div>
se %}
末页
{% endif %}
```