0
点赞
收藏
分享

微信扫一扫

深入浅出 -- 系统架构之负载均衡Nginx实现高可用

菜菜捞捞 04-15 11:30 阅读 1

01 图书管理系统

创建虚拟环境

conda create --name django4 python=3.11.7y

激活虚拟环境

conda activate django4

安装Django

pip install django==4.2.11

创建项目

django-admin startproject c02_library_project

启动项目

cd .\c02_library_project\
python manage.py runserver

项目结构

__init__.py 是Python将目录视为包的一种方式;它是空的
settings.py 包含我们项目的所有配置
urls.py 控制顶层URL路由
wsgi.py 代表web服务器网关接口,帮助Django服务于最终的web页面
manage.py 执行各种Django命令,比如运行本地web服务器或创建一个新的应用程序。

同步数据库

python manage.py makemigrations
python manage.py migrate

创建第一个应用

python manage.py startapp books

每个应用都会包含如下文件:

__init__.py
admin.py 是Django内置管理应用的配置文件
apps.py 是应用程序本身的配置文件吗
migrations/ 目录存储数据库更改的迁移文件
models.py 是我们定义数据库模型的地方吗
tests.py 是为了我们的应用程序特定测试
views.py 我们在哪里处理我们的web应用程序的请求/响应逻辑

使用vscode打开项目

code .

配置应用

应用创建好了以后,需要去settings.py中配置应用,这样才能够被Django识别到:

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",

    # 本地应用
    'books.apps.BooksConfig'
]

创建图书模型

在books/models.py中新增图书模型:

from django.db import models

class Book(models.Model):
    """图书模型"""
    title = models.CharField(max_length=250)
    subtitle = models.CharField(max_length=250)
    author = models.CharField(max_length=100)
    isbn=models.CharField(max_length=13)

    def __str__(self) -> str:
        return self.title

创建完毕以后迁移模型:

python manage.py makemigrations
python manage.py migrate

创建系统管理员

python manage.py createsuperuser

将图书模型注册到后台

修改books/admin.py,将Book图书模型注册到后台:

from django.contrib import admin
from .models import Book

admin.site.register(Book)

登录后台

重启服务:

python manage.py runserver

登录后台:http://127.0.0.1:8000/admin

之后在后台中找到图书,新增基本图书。

列表视图

修改books/views.py,添加一个BookListView,用来展示图书列表:

from django.shortcuts import render
from django.views.generic import ListView
from .models import Book

class BookListView(ListView):
    model = Book
    template_name = "book_list.html"

配置路由

有了视图以后,还需要配置路由,先配置urls.py顶层路由:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("books.urls")),
]

接着,新增books/urls.py,配置应用路由:

from django.urls import path, include
from . import views

app_name = 'books'
urlpatterns = [
    path("", views.BookListView.as_view(), name='list'),
]

添加模板代码

最后,我们新建books/templates/books/book_list.html,用来显示HTML代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书列表</title>
</head>
<body>
<h1>所有图书</h1>
{% for book in object_list %}
    <ul>
        <li>标题:{{ book.title }}</li>
        <li>副标题:{{ book.subtitle }}</li>
        <li>作者:{{ book.author }}</li>
        <li>ISBN:{{ book.isbn }}</li>
    </ul>
{% endfor %}

</body>
</html>

此时,重启服务,再次访问首页,就能够看到刚才在后台管理界面中添加的图书了。你可以多添加几本图书再试试。

举报

相关推荐

0 条评论