python下的django入门项目---图书管理系统(项目创建,数据库配置,后台管理站点管理)

一.项目介绍:

使用 Django 完成基本流程的开发,学习 Django 的主要的知识点,
 
 本次入门以图书管理系统为示例 , 实现图书管理的基本功能。
 
二.项目的创建与运行
 
1.自动生成建立 Django
 
从命令行 cd 到您要存储代码的目录,然后运行以下命令:
 
django - admin startproject BookManage
 
在线安装 Django, 指定版本安装
 
pip install django -i https://pypi.douban.com/simple
 
目录说明 :
 
manage.py :一个命令行工具,可以使你用多种方式对 Django 项目进行交互
 
内层的目录:项目的真正的 Python
 
__init__.py :一个空文件,它告诉 Python 这个目录应该被看做一个 Python
 
settings.py :项目的配置
 
urls.py :项目的 URL 声明
 
wsgi.py :项目与 WSGI 兼容的 Web 服务器入口
 
三.应用的创建与使用
 
1.创建第一个应用程序
 
Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不
 
是创建目录。
 
在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
 
创建应用的命令:
 
python3 manage . py startapp bookApp
 
2. 编写第一个视图函数
 
  bookApp/views.py 
 
 
3. 路由规则
 
bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py
 
根据配置文件 BookManage/settings 可知路由查找的主文件FirstDjango /urls.py , 因此在该文件添加一条 url 规则:
 
include() 函数允许引用其他 URLconfs
 
 
4. 效果展示
 
启动服务器
 
python3 manage.py runserver
 
访问 url 地址 : http:// 127.0.0.1:8000/book/ 如果看到主页内容 图书管理系统 即成功。
 
url() 函数介绍
 
Django url() 可以接收四个参数,分别是两个必选参数: regex view 和两个可选参数: kwargs 、 name
 
regex : 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view
 
view : 用于执行与正则表达式匹配的 URL 请求。
 
kwargs : 视图使用的字典类型的参数。
 
name : 用来反向获取 URL

 

: 项目的数据库模型

1. 添加mysql数据库配置

Django 支持的数据库包括: sqlite mysql 等主流数据库
 
Django 默认使用 SQLite 数据库
 
Django 数据库设置参考文档
 
其中 ENGINE 设置为数据库后端使用。内置数据库后端有:
 
'django.db.backends.postgresql'
 
'django.db.backends.mysql'
 
'django.db.backends.sqlite3'
 
'django.db.backends.oracle'
 
2 . 创建数据库模型
 
本示例完成 图书 - 英雄 信息的维护,需要存储两种数据:图书、英雄
 
图书 - 英雄的关系为一对多
 
 
3. 生成数据库表
 
激活模型 :编辑 settings.py 文件,将应用加入到 INSTALLED_APPS
 
生成迁移文件 :根据模型类生成 sql 语句
 
python manage . py makemigrations
 
 
执行迁移 :执行 sql 语句生成数据表
 
python manage . py migrate
 
数据库中查看数据库表是否创建成功 ?
 
 
4 . 数据库模型基本操作
 
现在进入交互式的 Python shell ,并使用 Django 提供的免费 API
 
python manage . py shell
 
引入需要的包:
 
from bookApp . models import Hero , Book
 
查询所有图书信息:
 
Book . objects . all ()
 
新建图书信息:
 
  from datetime import datetime
 
book = Book ( title = " 射雕英雄传 " , pub_date = datetime ( year = 1990 , month = 1 , day = 10 ))
 
book . save ()
 
修改图书信息:
 
book . title = " 天龙八部 "
 
book . save ()
删除图书信息:
 
book . delete ()
 
 
 
五: 启用后台Admin 站点管理
 
站点分为 内容发布 ( 后台管理 )” 公共访问 ( 前台管理 )” 两部分
 
内容发布 的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力 的工作。
 
因此, Django 会根据定义的模型类完全自动地生成管理模块
 
Django 框架中有一个非常强大的应用功能 : 自动管理界面。 常被 Web 平台管理者使用,去管理整个Web平台 
 
默认情况下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下应用程序,为了后续的开发,默 认这些
 
应用程序都是包含在里面的。
 
 
1.数据库迁移
 
使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。
 
python manage.py makemigrations
 
python manage.py migrate

2. 创建管理员用户
 
启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
 
进入管理站点,默认可以对 groups users 进行管理
 
 
3. 管理界面本地化
 
编辑 settings.py 文件,设置编码、时区
 
 
4.自定义模型加入后台管理
 
打开 bookApp/admin.py 文件,注册模型
 
刷新管理页面,可以对 Book 的数据进行增删改查操作 ;
 
 
问题一: python2 版本中 , 如果在 str 方法中返回中文,在修改和添加时会报 ascii 的错误
 
str() 方法中,将字符串末尾添加 “.encode('utf - 8')” 进行字符串编码 
 
 
5. 自定义管理页面
 
Django 提供了 admin.ModelAdmin
 
通过定义 ModelAdmin 的子类,来定义模型在 Admin 界面的显示方式
 
 
(1).列表页属性性
 
list_display :显示字段,可以点击列头进行排序
 
list_fifilter :过滤字段,过滤框会出现在右侧
 
search_fifields :搜索字段,搜索框会出现在上侧
 
list_per_page :分页,分页框会出现在下侧
 
(2).添加、修改页属性
 
fifields :属性的先后顺序
 
fieldsets :属性分组, 注意 : fields fieldsets 只能设置一个 .
 
(3)关联对象
 
对于 Hero 模型类,有两种注册方式
 
方式一:与 Book 模型类相同
 
方式二:关联注册
 
admin.StackedInline : 内嵌关联注册类
 
admin.TabularInline : 表格 关联注册类
 
 
(4)布尔值的显示
 
发布性别的显示不是一个直观的结果,可以使用方法进行封装
 
 
admin 注册中使用 sex 代替 gender
 
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值