Django图书馆综合项目-学习

图书馆项目

  

一 前期准备

安装好所需的环境

我这边用的IDE是VScode 

操作系统是MACOS

 二 先创建一个虚拟环境

python3 -m venv myenvbook 
source myenvbook/bin/activate

三 安装 Django

pip3 install django==4.2

四 创建 Django 项目

django-admin startproject bookproject

五 尝试启动一下

python3 manage.py runserver

看到这个界面表明已经成功启动Djaongo服务器了 

接下来我们将作者,出版社,书籍的APP分别创建一下

django-admin startapp book
django-admin startapp author
django-admin startapp publisher

将新创建的app在settings里注册

 配置一下模版路径 其他暂时不动

from django.db import models# 作者
class Auther(models.Model):first_name = models.CharField(max_length=30)last_name = models.CharField(max_length=30)email = models.EmailField()gender = models.BooleanField(default=True)def __str__(self):return self.first_name + self.last_name
from django.db import models# 出版社
class Publisher(models.Model):name = models.CharField(max_length=30)address = models.CharField(max_length=100)city = models.CharField(max_length=30)state_province = models.CharField(max_length=30)country = models.CharField(max_length=20)website = models.URLField()def __str__(self):return self.name

在创建book的时候需要导入Auther 和 Publisher 

from django.db import models
from auther.models import Auther
from publisher.models import Publisher# 书籍
class book(models.Model):title = models.CharField(max_length=100, verbose_name="书名")publish_date = models.DateField(verbose_name="出版时间")auther = models.ForeignKey(Auther, on_delete=models.PROTECT, verbose_name="作者")publisher = models.ManyToManyField(Publisher, verbose_name="出版社")def __str__(self):return self.title

模型创建好之后执行以下迁移

python3 manage.py makemigrations
python3 manage.py migrate 

查看一下表是否创建成功

 创建一个超级管理员 方便进后台去增加一些数据

python3 manage.py createsuperuser

在每个APP的admin中添加

from django.contrib import adminfrom auther.models import *admin.site.register(Auther)

刷新后可以看到后台管理里就有了

其他2个也一样添加一下

添加一些数据后,创建一些urls 这边用子路由结合命名空间的方式去访问

在主路由先添加

创建一些对应的html页面

将视图函数和路由都配置一下

下一节我们再做一些页面的跳转学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单实现---基于STL的演讲比赛流程管理系统(C++实现)

前言 事先声明:本文章中编写的代码仅用于学习算法思想和编写基础形式使用,并未进行太多的代码优化,因此,若需要对代码进行优化以及异常处理的小伙伴们,可自行添加相关操作,谢谢! 一、题…

解决kali linux ssh连接失败

kali linux 默认ssh是禁止root登录的 为了通过 SSH 进入你的 Kali Linux 系统,你可以有两个不同的选择。第一个选择是创建一个新的非特权用户然后使用它的身份来登录。第二个选择,你可以以 root 用户访问 SSH 。为了实现这件事,需要在SSH 配…

[嵌入式系统-78]:RT-Thread:线程管理的基本原理与应用

目录 一、RTT线程的特点 二、RTT线程机制 2.1 线程的属性与线程控制块详解 2.2 线程的调度 2.3 线程的切换 2.5 系统线程 三、线程的调度机制 3.1 线程创建与删除 1、线程控制块 2、线程栈 3、入口函数 4、线程的创建方式 (1)静态线程初始化函…

visual studio2022 JNI极简开发流程

文章目录 1 创建java类2 生成JNI头文件3 使用visual studio2022创建DLL项目3.1 选择模板中(Windows桌面向导)3.2 为项目命名3.3 选择应用程序类型为动态链接库3.4 项目概览 4 导入需要的头文件4.1 导入需要的头文件4.2 修改头文件 5 编写C实现6 生成dll文…

O2OA翱途开发平台前端API和后端API的访问以及使用

O2OA是一个高度可定制化的企业级开发平台,它的API(应用程序接口)分为前端和后端,各自有不同的用途,平台为用户开放了全部的后端API供开发者使用,开发者可以根据各类API组织出符合实际业务需求的新服务或者新…

leetcode-最长公共子序列(二)-103

题目要求 思路 step 1:优先检查特殊情况。 step 2:获取最长公共子序列的长度可以使用动态规划,我们以dp[i][j]dp[i][j]dp[i][j]表示在s1中以iii结尾,s2中以jjj结尾的字符串的最长公共子序列长度。 step 3:遍历两个字…

计算机毕业设计hadoop+spark+hive知识图谱bilibili视频数据分析可视化大屏 视频推荐系统 预测系统 实时计算 离线计算 数据仓库

研究意义 随着互联网的快速发展,人们面临着海量的视频内容,如何从这些繁杂的视频中找到自己感兴趣的内容成为一个重要的问题[1]。推荐系统作为一种解决信息过载问题的重要工具,能够根据用户的历史行为和偏好,预测用户可能感兴趣的…

CSS 实现文本的渐变色

定义一个类 .text-color{/* 创建一个水平方向的颜色渐变 */background: linear-gradient(120deg, #bd34fe 30%,#5c34fe, #41d1ff);/* 将文本透明度设置为0,以便背景渐变可见 */color: transparent;/* 使用背景渐变来填充文本背景 */-webkit-background-clip: text;…

谷歌Gboard应用的语言模型创新:提升打字体验的隐私保护技术

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

YOLOv9改进策略目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

👑 YOLOv9有效涨点专栏目录 👑 专栏视频介绍:包括专栏介绍、得到的项目文件、模型二次创新、权重文件的使用问题,点击即可跳转。 前言 Hello,各位读者们好 本专栏自开设两个月以来已经更新改进教程50余篇其中包含Re…

打造清洁宜居家园保护自然生态环境,基于YOLOv7【tiny/l/x】参数系列模型开发构建自然生态场景下违规违法垃圾倾倒检测识别系统

自然生态环境,作为我们人类赖以生存的家园,其健康与否直接关系到我们的生活质量。然而,近年来,一些不法分子为了个人私利,在河边、路边等公共区域肆意倾倒垃圾,严重破坏了环境的健康与平衡。这种行为不仅损…

shell脚本中条件语句

一.test测试 在Shell脚本中,test命令用于进行条件测试。它也可以通过方括号[]来表示,因为test实际上是[命令的一个别名。 格式1:test 条件表达式 格式2:[ 条件表达式 ] 注意[ ]空格,否则会失败 测试 是否成功使用…