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分别创建一下

python 复制代码
django-admin startapp book
django-admin startapp author
django-admin startapp publisher

将新创建的app在settings里注册

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

python 复制代码
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
python 复制代码
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

python 复制代码
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

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

python 复制代码
python3 manage.py makemigrations
python 复制代码
python3 manage.py migrate 

查看一下表是否创建成功

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

python 复制代码
python3 manage.py createsuperuser

在每个APP的admin中添加

python 复制代码
from django.contrib import admin

from auther.models import *

admin.site.register(Auther)

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

其他2个也一样添加一下

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

在主路由先添加

创建一些对应的html页面

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

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

相关推荐
哈里谢顿2 分钟前
Python 依赖注入详解
python
冬天vs不冷30 分钟前
Java基础(九):Object核心类深度剖析
java·开发语言·python
TS的美梦31 分钟前
【1:1复刻R版】python版火山图函数一键出图
开发语言·python·r语言·scanpy·火山图
CF14年老兵42 分钟前
Python万物皆对象:从懵懂到顿悟的奇妙之旅
后端·python·trae
这里有鱼汤1 小时前
发现个用《道德经》+价值投资大咖的智慧,做A股的AI诊股神器,居然还开源了
python
陈天伟教授1 小时前
(二)Python + 地球信息科学与技术 (GeoICT)=?
开发语言·python
之歆2 小时前
大模型微调分布式训练-大模型压缩训练(知识蒸馏)-大模型推理部署(分布式推理与量化部署)-大模型评估测试(OpenCompass)
人工智能·笔记·python
人工干智能2 小时前
pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?
python·游戏·计算机外设·pygame
R-G-B2 小时前
【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)
python·opencv·计算机外设·鼠标回调函数·鼠标控制·鼠标移动·鼠标绘制图形
IT古董5 小时前
第四章:大模型(LLM)】06.langchain原理-(3)LangChain Prompt 用法
java·人工智能·python