Python11期第四周优秀作业案例01

同学们,大家好,我们通过本周的学习 ,已经可以使用django框架搭建一个简单的相册的增删改查了,那么下面就给同学们看看本周的优秀案例,希望没有上榜的同学下次再接再厉,继续加油!!!

1.Python11期学员 齐琦
亮点:
1.实现了相册分页的功能
2.实现了增删改查的功能
3.代码整洁美观,注释清晰
主页

展示页

发布功能
发布功能

插入图片功能
插入图片功能
编辑修改功能
修改鲜花为sweety成功
删除功能成功
删除功能成功
删除成功
代码展示

模型部分
页内路由
Views视图代码

from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users
import time,os
from PIL import Image
from django.core.paginator import Paginator
# Create your views here.

def index(request):
	'''首页'''
	return render(request,"myapp/index.html")

def indexUsers(request,pIndex):
	#获取用户信息
	list = Users.objects.all()
	#封装信息
	p = Paginator(list, 4)
	if pIndex == "":
		pIndex="1"
	pIndex = int(pIndex)
	list2 = p.page(pIndex)
	plist = p.page_range
	context = {"ulist":list2,"plist":plist,"pIndex":pIndex}

	return render(request,"myapp/users/index.html",context)

def addUsers(request):
	'''加载添加表单'''
	return render(request,"myapp/users/add.html")

def insertUsers(request):
	'''执行photo信息添加'''
	#获取并封装用户信息
	try:
		myfile = request.FILES.get("mypic",None)
		if not myfile:
			return HttpResponse("没有上传文件信息")
		filename = str(time.time())+'.'+myfile.name.split('.').pop()
		destination = open("./static/pics/"+filename,"wb+")
		for chunk in myfile.chunks():
			destination.write(chunk)
		im = Image.open("./static/pics/"+filename)
		im.thumbnail((75,75))
		im.save("./static/pics/s_"+filename,None)
		destination.close()
		user = Users()
		user.name = request.POST['name']
		user.filename = filename
		user.filenamesmall = "s_"+filename
		user.save()
		context = {"info":"添加photo成功!Add photo successfully!"}


	except:
		context = {"info":"添加photo失败!Failed to add photo !"}

	return render(request,"myapp/users/info.html",context)


def delUsers(request,uid):
	'''删除图片方法'''
	try:
		ob = Users.objects.get(id=uid)
		filename = ob.filename
		filenamesmall = ob.filenamesmall
		os.remove("./static/pics/"+filename)
		os.remove("./static/pics/"+filenamesmall)
		ob.delete()
		context = {"info":"删除成功!Delete successful !"}

	except:
		context = {"info":"删除失败!Delete failed ! "}

	return render(request,"myapp/users/info.html",context)

def editUsers(request,uid):
	'''编辑图片方法'''
	try:
		ob = Users.objects.get(id=uid)
		context = {"user":ob}
		return render(request,"myapp/users/edit.html",context)

	except:
		return render(request,"myapp/users/info.html")

def updateUsers(request):
	'''执行编辑图片方法'''
	#做错误抛出处理
	try:
		myfile = request.FILES.get("mypic",None)
		if not myfile:
			return HttpResponse("没有上传文件信息No file information uploaded")
		filename = str(time.time())+'.'+myfile.name.split('.').pop()
		destination = open("./static/pics/"+filename,"wb+")
		for chunk in myfile.chunks():
			destination.write(chunk)
		im = Image.open("./static/pics/"+filename)
		im.thumbnail((75,75))
		im.save("./static/pics/s_"+filename,None)
		destination.close()
		user = Users.objects.get(id=request.POST['id'])
		user.name = request.POST['name']
		filename_old = user.filename
		filenamesmall_old = user.filenamesmall
		user.filename = filename
		user.filenamesmall = "s_"+filename
		user.save()
		os.remove("./static/pics/"+filename_old)
		os.remove("./static/pics/"+filenamesmall_old)
		context = {"info":"编辑成功!Editorial success!"}

	except:
		context = {"info":"编辑失败!Editor failure!"}

	return render(request,"myapp/users/info.html",context)

templates展示
在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
	<title>Albums information</title>
	
	<script type="text/javascript">
		function doDel(url){
			if (confirm("确定要删除吗?Are you sure you want to delete it? ")) {
				window.location=url
			}
		}
	</script>
</head>
<body>
	<center>
		{% include "myapp/users/menu.html"%}
		<h3>Browse albums information</h3>
			<table width="800" border="1">
				<tr>
					<th>ID number</th>
					<th>Title</th>
					<th>Picture</th>
					<th>Time</th>
					<th>Operation</th>
				</tr>
				{% for user in ulist %}
					<tr>
						<td>{{user.id}}</td>
						<td>{{user.name}}</td>
						<td><img src="./static/pics/{{user.filenamesmall}}"></td>
						<td>{{user.addtime|date:"Y-m-d H:i:s"}}</td>
						<td>
							<a href="{% url 'editusers' user.id%}">edit</a>
							<a href="javascript:doDel('{% url 'delusers' user.id %}')">delete</a>
						</td>
					</tr>
				{% endfor%}
			</table>

			{% for i in plist %}
				{% if i == pIndex %}
					{{i}}
				{% else %}
					<a href="{% url 'users' i %}">{{i}}</a>
				{% endif %}
			{% endfor %}
	</center>

</body>
</html>

在这里插入图片描述在这里插入图片描述
原作者出自CSDN学生齐琦,本文内容来自码云中国,作者链接
https://gitee.com/MFQTDA/CSDNXueYuanpythonQuanZhanGongChengShiXueXiDaiMaShiXun2.git

如有疑问,联系935049620@qq.com删除
报名学习CSDN学院咨询
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨安尧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值