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 admin

from auther.models import *

admin.site.register(Auther)

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

其他2个也一样添加一下

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

在主路由先添加

创建一些对应的html页面

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二叉树的前序、中序、后序遍历

二叉树的前序、中序、后序 1.二叉树的前序遍历 题目: 二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入&#xff…

LLM应用-文档解析 AI大模型总结分析文档

1)https://notegpt.io/pdf-summary 支持总结,思维导图、对话 2)chatdoc https://chatdoc.com/ 3)chatpdf https://www.chatpdf.com/ https://www.chatpdfs.cn/ 4)kimi https://kimi.moonshot.cn/

004.可观察对象与观察者

Rx非常适合事件驱动的应用程序。这是有意义的,因为事件(作为)(如前所述)是创建时变值的命令式方法。从历史上看,事件驱动编程主要出现在客户端技术中,因为作为事件实现的用户交互。例如,你可能工作过使用OnMouseMove或OnKeyPressed事件。正因…

构建滴滴业务中台:系统架构设计探索

在当今数字化时代,滴滴作为中国领先的出行平台,承载着数亿用户的出行需求,业务规模庞大且复杂多样。为了更好地支撑业务发展和提升服务质量,滴滴不断探索和构建业务中台,以实现业务的快速响应、灵活运营和持续创新。在…

2024年最新青龙面板跑脚本教程(一)持续更新中

文章目录 步骤 1: 安装青龙面板步骤 2: 访问青龙面板步骤 3: 上传或创建JavaScript脚本步骤 4: 添加定时任务步骤 5: 查看日志示例脚本步骤 6: 管理依赖和环境变量通用依赖如下,可手动增加。 要在青龙面板上运行JavaScript脚本,首先需要确保你已经成功安…

JavaEE之线程(4)——线程安全、线程安全的原因,synchronized关键字

前言 在本栏的前面的内容中,我们介绍了线程的创建、Thread 类及常见方法、线程的状态,今天我们来介绍一下关于线程的另一个重点知识——线程安全。 一、线程安全 基本概念: 线程安全的确切定义是复杂的,但我们可以这样认为&…

阿里云OSS配置跨域及域名访问

1、配置跨域 进入对象存储OSS–>OSS存储桶–>数据安全–>跨域设置–>创建规则 2、配置跨域 Etag x-oss-request-id3、配置结果如下 4、数据源配置 切换到数据管理–>静态页面 配置根页面 保存结果如下 5、配置域名访问 绑定域名 添加txt记录 验证绑定 …

【linux-IMX6ULL-uboot初次编译及烧录

目录 1. uboot基本概念1. 1 uboot的编译 3. uboot的烧录2. uboot的烧录结果 第一次不进行原理性的探究,也不关注源码内容,只是进行一个直观的了解,对uboot进行初次编译并进烧录到IMX6ULL板卡中 1. uboot基本概念 U-Boot(Universa…

设计循环队列-C语言实现

题目描述 设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的…

FPGA verilog LVDS通信协议笔记

一幅图胜过千言万语 直接开始挫代码,先写top.v。 module top();reg clk; // 生成时钟的寄存器 reg rst; // 生成复位信号的寄存器initial clk 1; // 初始值取1 always #1 clk ~clk; //1ns取反一次initial begin // 复位信号,先0,过段时间赋…

ORA-00932: inconsistent datatypes: expected - got CLOB的分析解决方案

最近在项目中遇到查询数据时报ORA-00932: inconsistent datatypes: expected - got CLOB错误,这个错误很明显是由于查询时类型的不匹配造成的。 问题分析: 一、检查你的查询的实体的类型是否于数据库的保持一致,如果不一致,那么需…

Rumor Remove Order Strategy on Social Networks

ABSTRACT 谣言被定义为广泛传播且没有可靠来源支持的言论。现代社会,谣言在社交网络上广泛传播。谣言的传播给社会带来了巨大的挑战。 “假新闻”故事可能会激怒您的情绪并改变您的情绪。有些谣言甚至会造成社会恐慌和经济损失。因此,谣言的影响可能是深…

Redis-数据过期策略

文章目录 Redis数据持久化策略的作用是什么?Redis的数据过期策略有哪些?惰性删除定期删除 更多相关内容可查看 Redis数据持久化策略的作用是什么? Redis数据过期策略是指在Redis中设置数据的过期时间,并在数据过期时自动从数据库…

【JavaScript超详细的学习笔记-上】JavaScrip超详细的学习笔记,共27部分,12多万字

想要获取笔记的可以点击下面链接获取 JavaScript超详细的学习笔记,点击我获取 一,JavaScript详细笔记 1,基础知识 1-1 基础知识 // 1,标识符命名规则:第一个字母必须是字母,下划线或一个美元符号。不能…

pasmutility.dll丢失要怎么修复,pasmutility.dll破解补丁在哪里找到?

pasmutility.dll是电脑中非常重要的文件之一,当电脑突然弹出“找不到pasmutility.dll”或是“pasmutility.dll丢失”等的错误提示窗口,可以选择下载pasmutility.dll文件,当然除了下载的方法还有很多种关于pasmutility.dll丢失的解决方法&…

自作聪明的AI? —— 信息处理和传递误区

一、背景 在人与人的信息传递中有一个重要问题——由于传递人主观处理不当,导致信息失真或产生误导。在沟通交流中,确实存在“自作聪明”的现象,即传递人在转述或解释信息时,根据自己对信息的理解、经验以及个人意图进行了过多的…

LeetCode 125题:验证回文串

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Apache访问控制与虚拟主机

目录 一. Web服务简介 以下是一些 Web 服务的基本概念和特征 以下是一些主流的 Web 服务器 WEB 服务协议 二. Apache 服务的搭建与配置 2.1 Apache 介绍 2.2 Apache安装 2.3 Apache目录介绍 三. 访问控制 四. 修改默认网站发布目录 五. 虚拟主机 5.1 基于域名的虚拟…

Linux信息显示相关指令

1、查看cpu 查看cpu信息:cat /proc/cpuinfo 查看cpu个数:nproc cat /proc/cpuinfo | grep "physical id" | uniq | wc -l uniq命令:删除重复行;wc –l命令:统计行数 查看CPU核数 cat /proc/cpuinfo | grep "cpu cores" | uniq 2、查看内存 cat /pr…

【STM32 |程序实例】按键控制、光敏传感器控制蜂鸣器

目录 前言 按键控制LED 光敏传感器控制蜂鸣器 前言 上拉输入:若GPIO引脚配置为上拉输入模式,在默认情况下(GPIO引脚无输入),读取的GPIO引脚数据为1,即高电平。 下拉输入:若GPIO引脚配置为下…