标签:函数 base return name ali 系统 any delete div
添加作者的增删改查
一、添加数据表
在app01文件下边的models文件中添加一个类
class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=32) books= models.ManyToManyField(to=‘Book‘)
执行
1. python manage.py makemigrations --> 找个小本本把models.py的变更记录一下
2. python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行
二、添加路由
url(r‘^author_list/$‘, views.author_list),
url(r‘^add_author/$‘, views.add_author),
url(r‘^del_author/$‘, views.del_author),
url(r‘^edit_author/$‘, views.edit_author),
#上传功能
url(r‘^upload/$‘, views.upload),
三、添加对应函数
1.作者展示列表的函数
def author_list(request): # 2 . 获取作者的ORM对象 author_obj_list = Author.objects.all() #返回一author的网页表 return render(request,‘author_list.html‘,{‘author_obj_list‘:author_obj_list}) #把所有的作者和书籍展示出来
2.增加作者函数
def add_author(request): # 2. 把所有书都展示对用户 #获取所有的书籍 book_obj_list = Book.objects.all() # 用户提交请求时post if request.method ==‘POST‘: add_author_name = request.POST.get(‘author_name‘) #获取作者名字 add_book_ids = request.POST.getlist(‘book_ids‘) # 获取作者写的书(一定要用getlist 不然只能获取最后一本书) # A = Author.objects.create(name=add_author_name) # A.books.set(add_book_ids) Author.objects.create(name=add_author_name).books.set(add_book_ids) #利用ORM把数据写入数据库表中 return redirect(‘/author_list/‘) # 1 .第一次返回用户一个页面 return render(request,‘add_author.html‘,{‘book_obj_list‘:book_obj_list})
3.删除作者函数
def del_author(request): # 获得删除对象的id del_author_id = request.GET.get(‘id‘) #删除sql表中的数据 Author.objects.get(id=del_author_id).delete() # 跳转回author_lsit面页 return redirect(‘/author_list/‘)
4.编辑作者函数
def edit_author(request): # 1.先获取要编辑的id edit_id = request.GET.get(‘id‘) #第一次获得要编辑的id author_obj = Author.objects.get(id=edit_id) #获得要编辑表中作者的orm对象 if request.method ==‘POST‘: edit_author_name = request.POST.get(‘author_name‘) edit_book_ids = request.POST.getlist(‘book_obj_ids‘) #拿到数据 author_obj.name = edit_author_name #修改作者 author_obj.save() #改自己的表要保存下 author_obj.books.set(edit_book_ids) #修改第三联系表 return redirect(‘/author_list/‘) #第一次返回一个html网页 # 需要对应的作者,书名 book_obj_list = Book.objects.all() return render(request,‘edit_author.html‘,{‘book_obj_list‘:book_obj_list,‘author_obj‘:author_obj})
5.上传功能
def upload(request): if request.method == ‘POST‘: #提交表单是post file_obj = request.FILES.get(‘name‘) #获得 文件 对象 print(file_obj) file_name = file_obj.name print(file_name) if os.path.exists(os.path.join(settings.BASE_DIR,file_name)): #分析 OS.path.exists 路径存在为true,不存在未false, 文件名字 拼接 项目路径 #加起来就是项目路径下彼岸是否存在和我文件重名的文件 name,suffix = file_name.split(‘.‘) name += ‘1‘ file_name = name + ‘.‘ + suffix with open(file_name,‘wb‘) as f: for chunk in file_obj.chunks(): f.write(chunk) #第一次给用户一个界面 return render(request,‘upload.html‘)
标签:函数 base return name ali 系统 any delete div
原文地址:https://www.cnblogs.com/clbao/p/9756341.html