当前位置: 首页 > news >正文

南宁网站制作专业广汉有没有做网站建设公司

南宁网站制作专业,广汉有没有做网站建设公司,北京宏福建设工程有限公司网站,建设银行网站电脑版一、图书需求 1. 书籍book_index.html中有超链接#xff1a;查看所有的书籍列表book_list.html页面 2. 书籍book_list.html中显示所有的书名#xff0c;有超链接#xff1a;查看本书籍详情book_detail.html(通过书籍ID)页面 3. 书籍book_detail.html中书的作者和出版社…一、图书需求 1. 书籍book_index.html中有超链接查看所有的书籍列表book_list.html页面 2. 书籍book_list.html中显示所有的书名有超链接查看本书籍详情book_detail.html(通过书籍ID)页面 3. 书籍book_detail.html中书的作者和出版社有超链接作者详情author_detail.html(通过书籍ID)和出版社详情publisher_detail.html(通过书籍ID)页面 4. 书籍book_list.html中添加图书超链接,book_add.html 5. 书籍book_list.html中修改图书超链接,book_edit.html 6. 书籍book_list.html中删除图书超链接,book_delete.html二、实现步骤 1、创建每个模块的模型models.py 2、创建每个模块的html页面 3、创建每个模块的视图函数views.py 4、编写每个模块的子路由urls.py 5、运行测试每个模块访问http://127.0.0.1:8000/book/detail/1http://127.0.0.1:8000/book/list/http://127.0.0.1:8000/book/index/.....注意分模块操作 三、数据表关系 书籍表 Booktitle 、 pub_date 、 publisher多对多 、 author外键多对一 出版社表 Publishername 、address、city 、state_province、 country、website 作者表 Authorfirst_name、 last_name、 email、 gender 注意自动生成中间表 book_publisher  四、创建bookitem项目 在控制台执行子应用: python manage.py startapp book 五、编码显示 1模型层models.py from django.db import models# Create your models here. #作者数据模型 class Author(models.Model):first_namemodels.CharField(max_length30)last_namemodels.CharField(max_length30)emailmodels.EmailField()# gendermodels.BooleanField(defaultTrue)gender_choices((0,女),(1,男),(2,保密),)gendermodels.SmallIntegerField(choicesgender_choices)class Meta:db_tableauthorverbose_name作者verbose_name_pluralverbose_namedef __str__(self):return self.first_nameself.last_name from django.db import models# Create your models here. #出版社数据模块 class Publisher(models.Model):namemodels.CharField(max_length30)addressmodels.CharField(max_length100)citymodels.CharField(max_length30)state_provincemodels.CharField(max_length30)countrymodels.CharField(max_length30)websitemodels.URLField()class Meta:db_table publisherverbose_name 出版社verbose_name_plural verbose_namedef __str__(self):return self.name from django.db import models from author.models import Author #导入数据模型 from publisher.models import Publisher# Create your models here. # 书籍数据模型 class Book(models.Model):titlemodels.CharField(max_length100,verbose_name书名)publish_datemodels.DateField(verbose_name出版时间)#FK关联#fk:book:Author作者数据模型N:1(多对一authormodels.ForeignKey(Author,on_deletemodels.PROTECT,verbose_name作者)#多对多 book:Publisher 出版社数据模型(多对多publishermodels.ManyToManyField(Publisher,verbose_name出版社)class Meta:db_table bookverbose_name 书籍verbose_name_plural verbose_namedef __str__(self):return self.title 数据迁移生成相关表 在终端依次执行命令python manage.py makemigrationspython manage.py migrate  手动添加相关数据  2视图层views.py from django.shortcuts import render from author.models import *# Create your views here. #作者详情 def author_detail(request,aid):通过aid获取作者详情信息:param request::param aid::return:authorAuthor.objects.get(pkaid)return render(request,author/author_detail.html,{author:author}) from django.shortcuts import render from publisher.models import * # Create your views here. #出版社详情 def publisher_detail(request,pid):publisherPublisher.objects.get(pkpid)return render(request,publisher/publisher_detail.html,{publisher:publisher}) from django.shortcuts import render, redirect from book.models import * from author.models import * from publisher.models import *# Create your views here. # 书籍首页 def book_index(request):return render(request, book/book_index.html)# return render(request, book/book_home.html)# 书籍列表 def book_list(request):获取所有的书籍:param request::return:books Book.objects.all()return render(request, book/book_list.html, {books: books})# 书籍详情 def book_detail(request, bid):获取bid对应的书籍:param request::param bid::return:book Book.objects.get(pkbid)return render(request, book/book_detail.html, {book: book})# 书籍添加 def book_add(request):if request.method POST:# 获取书名出版时间作者出版社列表title request.POST.get(title)publish_date request.POST.get(publish_date)author_id request.POST.get(author)#*列表getlistpublisher_list request.POST.getlist(publisher)# 操作数据库存储数据book_obj Book.objects.create(titletitle, publish_datepublish_date, author_idauthor_id)# 书籍与出版社的关系表book_obj.publisher.add(*publisher_list)# 跳转到书籍的展示页面# 直接跳转对应的列表数据使用别名namelistreturn redirect(../list)# 获取当前系统所有的出版社和作者信息publishers Publisher.objects.all()# print(publishers)authors Author.objects.all()# print(authors)#返回添加页面return render(request, book/book_add.html, locals())# 书籍编辑 def book_edit(request, bid):获取bid对应的书籍:param request::param bid::return:if request.method POST:# 获取书名出版时间作者出版社列表title request.POST.get(title)publish_date request.POST.get(publish_date)author_id request.POST.get(author)# *列表getlistpublisher_list request.POST.getlist(publisher)# 操作数据库修改数据Book.objects.filter(pkbid).update(titletitle,publish_datepublish_date,author_idauthor_id)# 修改第三张表book_objBook.objects.filter(pkbid).first()# 修改出版社列表book_obj.publisher.set(publisher_list)# 跳转到书籍的展示页面# 直接跳转对应的列表数据使用别名namelistreturn redirect(../list)# 获取当前用户想要编辑的书籍对象展示给用户看edit_obj Book.objects.filter(pkbid).first()# 获取当前系统所有的出版社和作者信息publishers Publisher.objects.all()# print(publishers)authors Author.objects.all()# print(authors)return render(request, book/book_edit.html, locals())# 书籍删除 def book_delete(request, bid):#删除书籍Book.objects.filter(pkbid).delete()# 跳转到书籍的展示页面# 直接跳转对应的列表数据使用别名namelistreturn redirect(../list) 3路由层urls.py from django.contrib import admin from django.urls import path from book.views import * #导入视图urlpatterns [path(index/, book_index, nameindex),path(list/, book_list, namelist),# 注意参数名必须与视图定义的参数名字相同起个别名namepath(detail/int:bid, book_detail, namedetail),#添加书籍path(add/, book_add, nameadd),# 注意参数名必须与视图定义的参数名字相同起个别名name#修改书籍path(edit/int:bid, book_edit, nameedit),# 删除书籍path(delete/int:bid, book_delete, namedelete), ]from django.contrib import admin from django.urls import path, includeurlpatterns [#path(author/, include((author.urls,author),namespaceauthor)), #子路由authorpath(book/, include((book.urls,book),namespacebook)), #子路由bookpath(publisher/, include((publisher.urls,publisher),namespacepublisher)), #子路由publisherpath(admin/, admin.site.urls), #后台管理路由 ]4模板页面html (1) 首页页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyh1书籍首页/h1hr/{# book命名空间 list是别名 #}a href{% url book:list %}查看所有的书籍/a /body /html (2) 图书展示页面  !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title{# css #}{% block extcss %}!-- 新 Bootstrap4 核心 CSS 文件 --link relstylesheet hrefhttps://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css{% endblock %}{% block extJs %}!-- jQuery文件。务必在bootstrap.min.js 之前引入 --script srchttps://cdn.staticfile.org/jquery/3.2.1/jquery.min.js/script!-- bootstrap.bundle.min.js 用于弹窗、提示、下拉菜单包含了 popper.min.js --script srchttps://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js/script!-- 最新的 Bootstrap4 核心 JavaScript 文件 --script srchttps://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js/script{% endblock %} /head bodyh1 classtext-center书籍信息/h1a href{% url book:add %} classbtn btn-primary btn-xs添加/abrtable classtable table-hover table-stripedtheadtrthID/thth书名/thth出版日期/thth出版社/thth作者/thth操作/th/tr/theadtbody{% for book in books %}trtd{{ book.pk }}/tdtda href{% url book:detail book.id %}{{ book.title }}/a/td{#格式化日期#}td{{ book.publish_date|date:Y-m-d }}/tdtd{% for publish in book.publisher.all %}{# 判断是最后一个不加#}{% if forloop.last %}{{publish.name }}{# 判断是其他加#}{% else %}{{publish.name }},{% endif %}{% endfor %}/tdtd {{book.author.first_name }}{{book.author.last_name }}/tdtda href{% url book:edit book.pk %} classbtn btn-primary btn-xs编辑/aa href{% url book:delete book.pk %} classbtn btn-primary btn-xs删除/a/td/tr{% endfor %}/tbody/table /body(3) 图书添加页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title{# css #}{% block extcss %}!-- 新 Bootstrap4 核心 CSS 文件 --link relstylesheet hrefhttps://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css{% endblock %} /head bodyh1 classtext-center书籍添加/h1hr/form action methodpost{# 确认html中的form添加模板标签,否则发生异常#}{% csrf_token %}p书名input typetext nametitle classform-control/pp出版日期input typedate namepublish_date classform-control/pp出版社select namepublisher id multiple classform-control{% for publish_obj in publishers %}option value{{ publish_obj.pk }}{{ publish_obj.name }}/option{% endfor %}/select/pp作者select nameauthor id classform-control{% for author_obj in authors %}option value{{ author_obj.pk }}{{ author_obj.first_name }}{{ author_obj.last_name }}/option{% endfor %}/select/pinput typesubmit value新增 classbtn btn-primary btn-block/form/body /html (4) 图书修改页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title{# css #}{% block extcss %}!-- 新 Bootstrap4 核心 CSS 文件 --link relstylesheet hrefhttps://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css{% endblock %} /head body h1 classtext-center书籍编辑/h1 form action methodpost{# 确认html中的form添加模板标签,否则发生异常#}{% csrf_token %}p书名input typetext nametitle classform-control value{{ edit_obj.title }}/pp出版日期input typedate namepublish_date classform-controlvalue{{ edit_obj.publish_date|date:Y-m-d }}/pp出版社select namepublisher id multiple classform-control{% for publish_obj in publishers %}{# 针对当前书籍对象的出版社应该默认选中 #}{% if publish_obj in edit_obj.publisher.all %}option value{{ publish_obj.pk }} selected{{ publish_obj.name }}/option{% else %}option value{{ publish_obj.pk }}{{ publish_obj.name }}/option{% endif %}{% endfor %}/select/pp作者select nameauthor id classform-control{% for author_obj in authors%}{% if author_obj edit_obj.author %}option value{{ author_obj.pk }} selected{{ author_obj.first_name }}{{ author_obj.last_name }}/option{% else %}option value{{ author_obj.pk }}{{ author_obj.first_name }}{{ author_obj.last_name }}/option{% endif %}{% endfor %}/select/pinput typesubmit value确定编辑 classbtn btn-info btn-block /form/body /html (5) 图书详情页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyh1书籍详情页/h1hr/divp名称{{ book.title }}/pp出版时间{{ book.publish_date }}/pp作者a href{% url author:detail book.author.id %}{{ book.author.first_name }}{{ book.author.last_name }}/a/pp出版社{% for publisher in book.publisher.all %}a href{% url publisher:detail publisher.id %}{{ publisher.name}}/a{# 每个出版社之间加分割|#}{% if not forloop.last %}|{% endif %}{% endfor %}/p/div/body /html (6) 作者详情页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyh1作者详情页/h1hr/divp名字{{ author.last_name }}{{ author.last_name }}/pp性别{{author.gender }}/pp邮箱{{author.email }}/p/div /body /html (7) 出版社详情页面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyh1出版社详情页/h1hr/divp名字{{ publisher.name }}/pp地址{{publisher.address }}/pp城市{{publisher.city }}/pp省份{{publisher.state_province }}/pp国家{{publisher.country }}/pp网址{{publisher.website }}/p/div /body /html 四、效果 图书信息  图书详情 作者详情 出版社详情 图书添加 单击添加按钮 返回列表显示  图书修改 单击编辑跳转 修改数据  修改后数据显示 图书删除 单击删除按钮 注意删除书籍信息相关的中间表的也删除数据。
http://www.hkea.cn/news/14557453/

相关文章:

  • 乐陵网站建设网站开发大作业
  • 苏州门户网站建设wordpress 热门搜索
  • 邯郸做网站多少钱北京建设部官网
  • 网页网站制作维护搜索引擎优化seo应用
  • 2018威胁网站检测平台建设湖南建设网站官网
  • 个人建设什么网站好字体安装wordpress
  • 建设商城类网站多少钱旅游网站建设的论文
  • 做网站需要自备服务器吗一个人免费观看视频播放
  • 网站制作的方法优化手机软件
  • 企业网站建设目的意义电子商务平台推广方案
  • 俄罗斯视频网站开发韩国做游戏的电影 迅雷下载网站
  • 楚雄网站建设做营销型网站用那个cms好
  • 鹰潭网站建设yt1983网络推广的方法和技巧
  • 网站后台链接怎么做东莞网站建设php方案
  • 查询建筑企业网站做卷子的网站
  • 360路由器做网站自己做网站自己买服务器
  • 网站建设辶金手指排名十三php做电商网站
  • 电子商务网站的管理网站建设_超速云建站
  • 站长工具seo综合查询访问app制作图片
  • 用什么框架做网站快上海网站建设 报价
  • 网站推广的几种方法惠州html5网站建设
  • 温州网站排名团队代理服务器地址和端口是多少
  • 做pc端网站如何微官网怎么开通使用
  • 佛山外贸网站建设报价就业指导中心网站建设总结
  • 做兼职用什么网站最好建设部网站注册规划师查询
  • 甘肃住房和城乡建设局网站全面的客户管理系统
  • 大连小程序定制上海网站建设seo推广
  • 美术教育机构网站建设方案品牌排行榜
  • 如何做网站接口鲜花网站建设企划书
  • 做网站赚广告费多么网站建设公司营销推广