博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
管理系统
阅读量:4671 次
发布时间:2019-06-09

本文共 10935 字,大约阅读时间需要 36 分钟。

I.书籍管理系统

models

class Book(models.Model):    """    书籍    """    title=models.CharField(max_length=32)    price=models.IntegerField()    dates=models.DateField(null=True)    p=models.ForeignKey('Publish')class Publish(models.Model):    """    出版社    """    name=models.CharField(max_length=32)    address=models.CharField(max_length=32)    city=models.CharField(max_length=32,null=True)class Author(models.Model):    """     作者    """    name=models.CharField(max_length=32)class Book2Author(models.Model):    """    书籍和作者关系表    """    book=models.ForeignKey('Book')    author=models.ForeignKey('Author')
View Code

 

urls.py

#---书籍    url(r'^book/',views.book),    url(r'^add_book/',views.add_book),    url(r'^del_book/',views.del_book),    url(r'^edit_book/(\d+)/',views.edit_book),    #---出版社        url(r'^publish/',views.publish),    url(r'^add_publish/',views.add_publish),    url(r'^del_publish/',views.del_publish),    url(r'^edit_publish/(\d+)/',views.edit_publish),    #---作者和书籍关系    url(r'^author/', views.author),    url(r'^add_author', views.add_author),    url(r'^del_author/', views.del_author),    url(r'^edit_author/(\d+)/', views.edit_author),
View Code

 

views.py

##-------------书籍----------def book(request):    book_list=models.Book.objects.all()    for obj in book_list:        print(obj.title,obj.p.name)    return render(request,'book.html',locals())def add_book(request):    if request.method=='GET':        publish_list=models.Publish.objects.all()        print(publish_list)        return render(request,'add_book.html',locals())    else:        title=request.POST.get('title')        price=request.POST.get('price')        dates=request.POST.get('dates')        p_id=request.POST.get('p_id')        models.Book.objects.create(title=title,price=price,dates=dates,p_id=p_id)        return redirect('/book/')def del_book(request):    nid=request.GET.get('nid')    models.Book.objects.filter(id=nid).delete()    return redirect('/book/')def edit_book(request,a1):    if request.method=='GET':        current_book_info=models.Book.objects.filter(id=a1).first()        publish_list = models.Publish.objects.all()        print(locals())        return render(request,'edit_book.html',locals())    else:        title=request.POST.get('title')        price=request.POST.get('price')        dates=request.POST.get('dates')        p_id=request.POST.get('p_id')        print(title,price,dates,p_id)        models.Book.objects.filter(id=a1).update(title=title,price=price,dates=dates,p_id=p_id)        return redirect('/book/')#--------------- 出版社 -------------def publish(request):    publish_list=models.Publish.objects.all()    return render(request,'publish.html',locals())def add_publish(request):    if request.method=='GET':        return render(request,'add_publish.html')    else:        name=request.POST.get('name')        address=request.POST.get('address')        city=request.POST.get('city')        models.Publish.objects.create(name=name,address=address,city=city)        return redirect('/publish/')def del_publish(request):    nid=request.GET.get('nid')    models.Publish.objects.filter(id=nid).delete()    return redirect('/publish/')def edit_publish(request,a1):    if request.method=='GET':        current_publish_info=models.Publish.objects.filter(id=a1).first()        return render(request,'edit_publish.html',locals())    else:        name=request.POST.get('name')        address=request.POST.get('address')        city=request.POST.get('city')        models.Publish.objects.filter(id=a1).update(name=name,address=address,city=city)        return redirect('/publish/')#------------作者和书籍(多对多)------------def author(request):    author_list=models.Author.objects.all().values('id','name','book2author__book__title')    # for i in author_list:    #     print(i['id'],i['name'],i['book2author__book__title'])    # print('******',author_list)    result={}    for row in author_list:        id=row['id']        print('###',id)        if row['id'] in result:            result[row['id']]['title'].append(row['book2author__book__title'])        else:            result[row['id']] = {
'id':row['id'],'name':row['name'],'title':[row['book2author__book__title']]} print('*********',result) return render(request,'author.html',{
'author_list':result.values()})def add_author(request): if request.method=='GET': book_list=models.Book.objects.all() return render(request,'add_author.html',locals()) else: name=request.POST.get('name') author_id=models.Author.objects.create(name=name) book_ids=request.POST.getlist('book_ids') ###传过来的书籍可能会多个:getlist # print('***#####**',author_id) # print('***#####***',book_ids) #多次连接,多次提交 for b_id in book_ids: models.Book2Author.objects.create(author_id=author_id.id,book_id=b_id) return redirect('/author/')def edit_author(request,a1): if request.method=='GET': author_info=models.Author.objects.filter(id=a1).first() book_id_list=models.Book2Author.objects.filter(author_id=a1).values_list("book_id") book_id_list = [i[0] for i in book_id_list] book_list=models.Book.objects.all() # print('****',author_info) # print('****', book_id_list) return render(request,'edit_author.html',locals()) else: name=request.POST.get('name') book_ids=request.POST.getlist('b_ids') print('b)ids') #更新作者表 models.Author.objects.filter(id=a1).update(name=name) #更新作者和书籍表 #先把当前作者和书籍表 对象关系删除 models.Book2Author.objects.filter(author_id=a1).delete() for id in book_ids: models.Book2Author.objects.create(author_id=a1,book_id=id) return redirect('/author/')
View Code

 

***.html

#-----------书籍表

book.html

    
Title
{% for obj in book_list %}
{% endfor %}
ID 书名 价格 出版日期 出版社 操作
{ { obj.id }} { { obj.title }} { { obj.price }} { { obj.dates|date:'Y-m-d' }} { { obj.p.name }} 编辑 删除
View Code

 

add_book.html

{% load staticfiles %}    
添加书籍
{#
#}

View Code

 

edit_book.html

    
编辑书籍

编辑书籍

书籍名称

价格

日期

所属出版社

View Code

 

 

#--------出版社表

publish.html

 

{% load staticfiles %}    
Title
{% for obj in publish_list %}
{% endfor %}
ID 出版社 地址 城市 操作
{ { obj.id }} { { obj.name }} { { obj.address }} { { obj.city }} 编辑 删除
View Code

 

 

add_publish.html

{% load staticfiles %}    
添加出版社
View Code

 

edit_author.html

    
编辑作者

编辑作者

作者姓名

所写书籍

View Code

 

 

 

 

#--------作者表(包含Book和Author 关系

authot.html

{% load staticfiles %}    
Title
{% for obj in author_list %}
{% endfor %}
ID 作者姓名 所写书籍 操作
{ { obj.id }} { { obj.name }} {% for item in obj.title %} { { item }} {% endfor %} 编辑 删除
View Code

 

add_author.html

{% load staticfiles %}    
添加作者
{#
#}

View Code

 

edit_author.html

    
编辑作者

编辑作者

作者姓名

所写书籍

View Code

 

 

 

所用背景图片:

 

转载于:https://www.cnblogs.com/zhaochangbo/p/7200362.html

你可能感兴趣的文章
【Nginx】磁盘文件写入飞地发
查看>>
默认情况下安装的应用程序C盘后提示权限不足,当你开始介意。。。
查看>>
su root 后还是不能使用useradd ,useradd 等命令
查看>>
URL.createObjectURL图片预览
查看>>
js 中exec、test、match、search、replace、split用法
查看>>
Android开发笔记(一)手势识别
查看>>
mybatis 复习笔记03
查看>>
zoj 3703(背包)
查看>>
一种新的子波域滤波算法
查看>>
cookie之三天免登录代码
查看>>
1043 幸运号码 数位DP
查看>>
js18
查看>>
2018-2019-2 20175308实验一 《Java开发环境的熟悉》实验报告
查看>>
如何设置WIN7自动登录(去除登录密码)
查看>>
关于bash中if语法结构的广泛误解(转)
查看>>
10G整数文件中寻找中位数或者第K大数
查看>>
操作手机数据库的uri
查看>>
Python小应用1 - 抓取网页中的链接地址
查看>>
三十分钟理解博弈论“纳什均衡” -- Nash Equilibrium
查看>>
HTML表格和列表笔记&练习<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>关于表格的一些练...
查看>>