登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』Django Web项目开发实战

書城自編碼: 3980759
分類: 簡體書→大陸圖書→計算機/網絡计算机理论
作者: [美]本·肖恩 等著刘璋 译
國際書號(ISBN): 9787302657736
出版社: 清华大学出版社
出版日期: 2024-03-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 811

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
汉末晋初之际政治研究
《 汉末晋初之际政治研究 》

售價:NT$ 602.0
强者破局:资治通鉴成事之道
《 强者破局:资治通鉴成事之道 》

售價:NT$ 367.0
鸣沙丛书·鼎革:南北议和与清帝退位
《 鸣沙丛书·鼎革:南北议和与清帝退位 》

售價:NT$ 551.0
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
《 从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛) 》

售價:NT$ 275.0
突破不可能:用特工思维提升领导力
《 突破不可能:用特工思维提升领导力 》

售價:NT$ 352.0
王阳明大传:知行合一的心学智慧(精装典藏版)
《 王阳明大传:知行合一的心学智慧(精装典藏版) 》

售價:NT$ 1010.0
失衡与重塑——百年变局下的中国与世界经济
《 失衡与重塑——百年变局下的中国与世界经济 》

售價:NT$ 602.0
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
《 不被定义的年龄:积极年龄观让我们更快乐、健康、长寿 》

售價:NT$ 352.0

建議一齊購買:

+

NT$ 347
《 多目标元胞差分算法及其应用 》
+

NT$ 653
《 计算 》
+

NT$ 347
《 驾驭ChatGPT:学会使用提示词 》
+

NT$ 862
《 数据结构与问题求解:Java语言描述(原书第4版) [美]马克·艾伦·维斯 》
+

NT$ 449
《 NFT极简入门 》
+

NT$ 806
《 Spring Boot 3核心技术与最佳实践 》
編輯推薦:
您希望开发可靠、安全且与众不同的应用程序,而不是在样板代码上花费数个小时吗?若答案是肯定的,熟悉Django框架则是您良好的起点。Django通常被称作功能齐全的Web开发框架,它具有构建独立应用程序所需的所有核心功能。
內容簡介:
《Django Web项目开发实战》详细阐述了与Django开发相关的基本知识,主要包括Django简介,模型和迁移,URL映射、视图和模板,Django admin简介,服务于静态文件,表单,高级表单验证和模型表单,媒体服务和文件上传,会话和身份验证,高级Django管理和定制,高级模板和基于类的视图,构建REST API,生成CSV、PDF和其他二进制文件,测试机制,Django第三方库,在Django中使用前端JavaScript库等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
關於作者:
本·肖恩是新西兰奥克兰的一名软件工程师。他从事开发工作已超过 14 年,自 2007 年以来一直使用 Django 构建网站。
在此期间,他的经验帮助了许多不同类型的公司,规模从初创公司到大型企业不等。他还对机器学习、数据科学、自动化部署和 DevOps 感兴趣。
目錄
第1章 Django简介 1
  1.1 简介 1
  1.2 搭建Django项目和应用程序 2
  1.3 模型-视图-模板 6
  1.3.1 模型 6
  1.3.2 视图 7
  1.3.3 模板 7
  1.3.4 MVT实战 8
  1.3.5 HTTP简介 9
  1.3.6 处理请求 14
  1.3.7 Django项目 15
  1.3.8 manage.py文件 15
  1.3.9 myproject目录 16
  1.3.10 Django开发服务器 16
  1.3.11 Django应用程序 17
  1.3.12 PyCharm设置 18
  1.3.13 视图 24
  1.3.14 URL映射 25
  1.3.15 GET、POST和QueryDict对象 30
  1.3.16 查看Django设置 34
  1.3.17 在代码中使用设置项 35
  1.3.18 在应用程序目录中查找HTML模板 36
  1.3.19 利用render函数渲染模板 39
  1.3.20 渲染模板中的变量 41
  1.3.21 调试和错误处理 43
  1.3.22 异常 43
  1.3.23 调试 46
  1.4 本章小结 52
第2章 模型和迁移 53
  2.1 简介 53
  2.2 数据库 54
  2.2.1 关系型数据库 54
  2.2.2 非关系型数据库 55
  2.2.3 利用SQL的数据库操作 55
  2.2.4 关系型数据库中的数据类型 55
  2.3 SQL CRUD操作 59
  2.3.1 SQL创建操作 60
  2.3.2 SQL读取操作 60
  2.3.3 SQL更新操作 61
  2.3.4 SQL删除操作 61
  2.3.5 Django ORM 62
  2.3.6 数据库配置和Django应用程序的创建 63
  2.3.7 Django应用程序 64
  2.3.8 Django迁移 64
  2.3.9 Django模型和迁移 66
  2.3.10 字段类型 67
  2.3.11 字段选项 67
  2.3.12 主键 70
  2.4 关系 72
  2.5 多对一关系 72
  2.6 多对多关系 73
  2.6.1 一对一关系 75
  2.6.2 添加Review模型 76
  2.6.3 模型方法 77
  2.6.4 迁移reviews应用程序 78
  2.7 Django的数据库的CRUD操作 80
  2.7.1 利用外键创建一个对象 83
  2.7.2 使用create()和set()方法创建多对多关系 86
  2.7.3 读取操作 86
  2.7.4 使用get()方法返回一个对象 87
  2.7.5 通过过滤机制检索对象 89
  2.7.6 根据字段查找进行过滤 90
  2.7.7 针对过滤操作使用模式匹配 90
  2.7.8 通过排除检索对象 91
  2.7.9 利用order_by()方法检索对象 91
  2.7.10 在关系间进行查询 94
  2.7.11 使用外键进行查询 94
  2.7.12 使用模型名进行查询 94
  2.7.13 使用对象实例在外键关系间进行查询 94
  2.7.14 填写Bookr项目的数据库 98
  2.8 本章小结 99
第3章 URL映射、视图和模板 101
  3.1 简介 101
  3.2 基于函数的视图 101
  3.3 基于类的视图 102
  3.4 URL配置 103
  3.5 模板 106
  3.6 Django模板语言 110
  3.6.1 模板变量 110
  3.6.2 模板继承 114
  3.7 基于Bootstrap的模板样式 115
  3.8 本章小结 120
第4章 Django admin简介 121
  4.1 简介 121
  4.2 创建超级用户账户 122
  4.3 使用Django admin应用程序的CRUD操作 124
  4.3.1 创建 125
  4.3.2 检索 127
  4.3.3 更新 128
  4.3.4 删除 130
  4.3.5 用户和分组 131
  4.4 注册reviews模型 136
  4.4.1 更改列表 138
  4.4.2 出版社更改列表 139
  4.4.3 图书更改页面 142
  4.5 定制管理界面 147
  4.5.1 站点范围内的Django管理定制 147
  4.5.2 从Python shell中检查AdminSite对象 148
  4.5.3 子类化AdminSite 148
  4.5.3 定制ModelAdmin类 154
  4.5.4 搜索栏 163
  4.6 本章小结 171
第5章 服务于静态文件 173
  5.1 简介 173
  5.2 静态文件处理 174
  5.2.1 静态文件查找器 175
  5.2.2 静态文件查找器:在请求期间使用 176
  5.2.3 AppDirectoriesFinder 177
  5.2.4 静态文件命名空间 177
  5.2.5 利用静态模板标签生成静态URL 182
  5.2.6 FileSystemFinder 190
  5.2.7 静态文件查找器:collectstatic期间的应用 193
  5.2.8 STATICFILES_DIRS前缀模式 196
  5.2.9 findstatic命令 198
  5.2.10 处理最近的文件 201
  5.2.11 自定义存储引擎 207
  5.3 本章小结 214
第6章 表单 215
  6.1 简介 215
  6.2 表单的含义 215
  6.2.1 元素 217
  6.2.2 输入类型 219
  6.2.3 具有跨站点请求伪造保护的表单安全性 227
  6.2.4 在视图中访问数据 229
  6.2.5 选择GET和POST 234
  6.2.6 当可以在URL中放置参数时为何使用GET 235
  6.3 Django表单库 236
  6.3.1 定义一个表单 237
  6.3.2 在模板中渲染表单 245
  6.4 验证表单并检索Python值 253
  6.5 内置字段的验证 258
  6.6 本章小结 264
第7章 高级表单验证和模型表单 265
  7.1 简介 265
  7.2 自定义字段验证和清除机制 266
  7.2.1 自定义验证器 266
  7.2.2 clean方法 267
  7.2.3 多字段验证 269
  7.2.4 占位符和初始值 279
  7.2.5 创建和编辑Django模型 282
  7.2.6 ModelForm类 283
  7.3 本章小结 300
第8章 媒体服务和文件上传 301
  8.1 简介 301
  8.2 设置媒体上传和服务 301
  8.3 服务于开发环境中的媒体文件 302
  8.4 上下文预处理器以及在模板中使用MEDIA_URL 305
  8.5 使用HTML表单上传文件 310
  8.5.1 在视图中处理上传文件 311
  8.5.2 浏览器发送值的安全性和信任性 313
  8.5.3 基于Django表单的文件上传 318
  8.5.4 基于Django表单的图像上传 323
  8.5.5 利用Pillow重置图像 324
  8.5.6 利用Django服务于上传(和其他)文件 328
  8.6 在模型实例上存储文件 329
  8.6.1 在模型实例上存储图像 332
  8.6.2 与FieldFile协同工作 333
  8.6.3 在模板中引用媒体 338
  8.6.4 ModelForm和文件上传 343
  8.7 本章小结 353
第9章 会话和身份验证 355
  9.1 简介 355
  9.2 中间件 356
  9.2.1 中间件模块 356
  9.2.2 实现身份验证视图和模板 358
  9.2.3 Django中的密码存储 364
  9.2.4 概要页面和request.user对象 365
  9.2.5 身份验证装饰器和重定向 367
  9.2.6 利用身份验证数据增强模板 371
  9.3 会话 375
  9.3.1 会话引擎 375
  9.3.2 是否需要标记cookie内容 376
  9.3.3 pickle或JSON存储 376
  9.3.4 在会话中存储数据 380
  9.4 本章小结 387
第10章 高级Django管理和定制 389
  10.1 简介 389
  10.2 定制管理站点 390
  10.2.1 在Django中发现管理文件 390
  10.2.2 Django的AdminSite类 391
  10.2.3 覆盖默认的admin.site 395
  10.2.4 利用admin.site属性自定义管理站点文本 397
  10.2.5 自定义管理站点模板 398
  10.3 向管理站点中添加视图 401
  10.3.1 创建视图函数 401
  10.3.2 访问常见的模板变量 402
  10.3.3 映射自定义视图的URL 402
  10.3.4 限制自定义视图到管理站点 403
  10.3.5 利用模板变量向模板中添加额外的键 406
  10.4 本章小结 409
第11章 高级模板和基于类的视图 411
  11.1 简介 411
  11.2 模板过滤器 412
  11.3 自定义模板过滤器 413
  11.3.1 模板过滤器 413
  11.3.2 设置目录存储模板过滤器 413
  11.3.3 设置模板库 414
  11.3.4 实现自定义过滤函数 414
  11.3.5 在模板中使用自定义过滤器 415
  11.3.6 字符串过滤器 418
  11.4 模板标签 418
  11.4.1 模板标签的类型 419
  11.4.2 简单标签 419
  11.4.3 如何创建简单的模板标签 419
  11.4.4 将模板上下文传递至自定义模板标签中 423
  11.4.5 包含标签 424
  11.5 Django视图 428
  11.6 基于类的视图 428
  11.6.1 基于CBV的CRUD操作 435
  11.6.2 创建视图 435
  11.6.3 更新视图 436
  11.6.4 删除视图 437
  11.6.5 读取页面 438
  11.7 本章小结 440
第12章 构建REST API 441
  12.1 简介 441
  12.2 REST API 441
  12.2.1 Django REST框架 442
  12.2.2 安装和配置 442
  12.2.3 函数式API视图 443
  12.3 序列化器 445
  12.3.1 基于类的API视图和通用视图 448
  12.3.2 模型序列化器 448
  12.4 Viewsets 453
  12.5 路由器 453
  12.6 身份验证 457
  12.7 本章小结 462
第13章 生成CSV、PDF和其他二进制文件 465
  13.1 简介 465
  13.2 与Python中的CSV文件协同工作 465
  13.3 与Python的CSV模块协同工作 466
  13.3.1 从CSV文件中读取数据 466
  13.3.2 利用Python写入CSV文件 469
  13.3.3 以较好的方式读写CSV文件 472
  13.4 在Python中处理Excel文件 475
  13.4.1 用于数据导出的二进制文件格式 475
  13.4.2 利用XlsxWriter包处理XLSX文件 476
  13.5 在Python中处理PDF文件 481
  13.6 Python中的图形 484
  13.6.1 利用plotly生成图形 484
  13.6.2 将plotly与Django集成 488
  13.7 将可视化与Django集成 488
  13.8 本章小结 494
第14章 测试机制 495
  14.1 简介 495
  14.2 测试的重要性 495
  14.3 自动化测试 496
  14.4 Django中的测试机制 497
  14.4.1 实现测试用例 497
  14.4.2 Django中的单元测试机制 497
  14.4.3 使用断言 498
  14.4.4 断言的类型 500
  14.4.5 在每个测试用例运行后执行测试前设置和清理 501
  14.5 测试Django模型 502
  14.6 测试Django视图 506
  14.7 使用身份验证测试视图 509
  14.8 Django的RequestFactory类 513
  14.9 Django中的测试用例类 516
  14.9.1 SimpleTestCase 516
  14.9.2 TransactionTestCase 517
  14.9.3 LiveServerTestCase 517
  14.9.4 模块化测试代码 517
  14.10 本章小结 519
第15章 Django第三方库 521
  15.1 简介 521
  15.1.1 环境变量 522
  15.1.2 django-configurations 524
  15.1.3 修改manage.py文件 526
  15.1.4 源自环境变量的配置 527
  15.1.5 dj-database-url 532
  15.1.6 Django调试工具栏 536
  15.2 django-crispy-forms 556
  15.2.1 crispy过滤器 557
  15.2.2 crispy模板标签 559
  15.2.3 django-allauth 564
  15.2.4 利用django-allauth初始化身份认证 569
  15.3 本章小结 572
第16章 在Django中使用前端JavaScript库 573
  16.1 简介 573
  16.2 JavaScript框架 573
  16.3 JavaScript简介 575
  16.3.1 React 581
  16.3.2 组件 582
  16.3.3 JSX 589
  16.3.4 JSX属性 591
  16.3.5 JavaScript Promise 594
  16.3.6 fetch函数 595
  16.3.7 JavaScript map方法 597
  16.3.8 verbatim模板标签 602
  16.4 本章小结 607
·XVIII·
Django Web项目开发实战
  
·XIX·
目 录
內容試閱
您希望开发可靠、安全且与众不同的应用程序,而不是在样板代码上花费数个小时吗?若答案是肯定的,熟悉Django框架则是您良好的起点。Django通常被称作功能齐全的Web开发框架,它具有构建独立应用程序所需的所有核心功能。
  本书秉承这一原则并通过Python构建真实的应用程序。
  本书首先介绍Django的基本概念,并通过构建Bookr网站(一个书评储存库)介绍Django的主要功能。这个端到端的案例研究被划分为一些列的小型项目,这些项目将以练习和操作的方式呈现,使读者以一种轻松、可实现的方式领略其中的内容。
  随着过程的不断深入,读者将学习各种操作技能,包括:如何向静态文件提供服务并将CSS、JavaScript和图像添加至应用程序中;如何实现表单并接收用户的输入内容,以及如何管理会话以确保可靠的用户体验。本书涵盖了作为真实Web应用程序开发周期一部分的关键日常任务。
  在阅读完本书后,读者将能够拥有相关技能,并利用Django开发自己的项目。
适用读者
  本书面向渴望拥有Django框架开发技能的程序员。为了更好地理解本书中的概念,读者应具备基本的Python编程知识,并熟悉JavaScript、HTML和CSS。
  第1章开始设置Django项目。我们将学习如何启动Django项目、响应Web请求并使用HTML模板。
  第2章引入Django数据模型,SQL数据库的数据持久化方法。
  第3章在第1章内容的基础上深入考查如何将Web请求路由至Python代码,并渲染HTML模板。
  第4章展示如何使用Django的内建Admin GUI,以创建、更新和删除存储在模型中的数据。
  第5章阐述如何利用样式和图像增强网站,以及如何方便地管理这些文件。
  第6章考查如何利用Django的Forms模块收集用户的输入内容。
  第7章在第6章内容的基础上完成,即添加更加高级的验证逻辑,并提升表单的功能。
  第8章讨论如何进一步提升网站,即允许用户上传文件,并利用Django向这些文件提供服务。
  第9章引入Django会话,并以此存储用户数据并对用户进行身份验证。
  第10章继续讨论第4章中的内容,随着对Django有了更深入的理解,我们可利用高级特性自定义Django管理。
  第11章介绍如何利用Django的高级模板特性和类来减少代码的编写量。
  第12章考查如何在Django中添加REST API,以提供编程方式从不同的应用程序中访问数据。
  第13章通过Django生成除HTML之外的其他文件,进而扩展Django的功能。
  第14章则是实际开发过程中的重要部分。本章显示如何使用Django和Python测试框架验证代码。
  第15章展示一些社区构建的库,以及如何使用已有的第三方代码快速地向项目中添加功能。
  第16章通过集成第12章创建的React和REST API以提供与项目之间的交互性。
  第17章通过设置服务器考查应用程序的部署过程。读者可访问本书的GitHub存储库下载本章内容。
  第18章展示如何将项目部署至虚拟服务器上而结束项目的开发过程。读者可访问本书的GitHub存储库下载本章内容。
本书约定
  本书中使用了许多文本约定。
  (1)代码块的设置如下。
  
urlpatterns = [path(‘admin/’, admin.site.urls),\\
path(‘’, reviews.views.index)]
  
  (2)输入和执行代码将生成中间结果,如下所示。
  
>>> qd.getlist(”k”)
[‘a’, ‘b’, ‘c’]
  
  在上述代码中,qd.getlist(”k”)表示输入的代码,而[‘a’, ‘b’, ‘c’]则表示输出结果。
  (3)跨行代码使用反斜杠(\\)进行分隔。当执行代码时,Python将忽略反斜杠,并将下一行代码视为当前行的直接延续,如下所示。
  
urlpatterns = [path(‘admin/’, admin.site.urls), \\
path(‘’, reviews.views.index)]
  
  (4)较长的代码片段将被截取,且GitHub上对应的代码文件名称被放置在截取的代码的上方。完整的代码链接被置在代码片段的下方,如下所示。
  
settings.py
INSTALLED_APPS = [‘django.contrib.admin’,\\
‘django.contrib.auth’,\\
‘django.contrib.contenttypes’,\\
‘django.contrib.sessions’,\\
‘django.contrib.messages’,\\
‘django.contrib.staticfiles’,\\
‘reviews’]
  
  完整的代码位于http://packt.live/2Kh58RE。
准备工作
  不积跬步无以至千里。在利用Django执行某些操作之前,需要准备相应的生产环境。下面将考查其实现方式。
安装Python
  在使用Django 3或其后续版本之前,需要在计算机上安装Python 3。Mac或Linux操作系统中通常安装了Python的某个版本,但较好的方法是运行Python的最新版本。在Mac操作系统中,Homebrew用户可输入下列命令。
  
$ brew install python
  
  在基于Debian的Linux发行版中,可输入下列命令检查可用的版本。
  
$ apt search python3
  
  取决于输出结果,随后可输入下列命令。
  
$ sudo apt install python3 python3-pip
  对于Windows操作系统,读者可访问https://www.python.org/downloads/windows/下 载Python?3安装程序,随后单击并运行该程序。其间,确保选择Add Python 3.x to PATH选项。
  待安装完毕后,在命令行提示符中,可运行Python启动Python解释器。
  注意,在macOS和Linux上,取决于具体的配置,pythin命令可能会启动Python 2或Python?3,此处应确保指定python?3。在Windows环境下,仅需运行python即可,这将启动Python?3。
  pip命令也基本类似。在macOS和Linux上,可指定pip3;而在Windows上,仅需指定pip。
安装PyCharm社区版本
  我们可使用PyCharm社区版本(CE)作为集成开发环境(IDE),以编辑、运行和调试代码。读者可访问https://www.jetbrains.com/pycharm/download/下载PyCharm,并遵循相关指令进行安装。
  对于macOS、Linux和Windows用户,读者可访问https://www.jetbrains.com/help/ pycharm/installation-guide.html#standalone查看详细的安装指令。此外,读者还可访问https://www.jetbrains.com/help/pycharm/installation-guide.html#requirements查看PyCharm的系统需求。关于PyCharm的更多信息,读者可访问https://www.jetbrains.com/help/pycharm/ run-for-the-first-time.html。
virtualenv
  虽然不是必需的,但我们依然建议使用Python虚拟环境,这将把Python包与系统包分离开来。
  首先将考查如何在macOS和Linux上设置虚拟环境。对此,需要安装virtualenv Python包,这可通过pip3命令完成。
  
$ pip3 install virtualenv
  
  随后在当前目录中创建一个虚拟环境。
  
$ python3 -m virtualenv
  
  待虚拟环境创建完毕后,需要对其使用source命令,以便终端知晓使用当前环境的Python和包,如下所示。
  
$ source /bin/activate
  
  在Windows环境中,可以类似的方式使用内建的venv库。当在当前目录中创建虚拟环境时,可运行下列命令。
  
> python -m venv
  
  待虚拟环境生成完毕后,可利用新虚拟环境的Scripts目录中的activate脚本对其进行激活,如下所示。
  
> \\Scripts\\activate
  
  在macOS、Linux和Windows环境中,我们将知晓虚拟环境已被激活,因为括号中的虚拟环境名称将位于提示符之前,如下所示。
  
(virtualenvname) $
安装Django
  在激活了虚拟环境后,可利用pip3或pip安装Django(取决于操作系统)。
  
(virtualenvname)$ pip3 install django
  
  一旦激活了虚拟环境,就可以使用该环境中的pip版本,并在该环境中安装包。
Django 3.0和Django 3.1
  自Django 3.1起,Django的作者改变了在Django设置文件中连接路径的方法。第1章将深入讨论设置文件。当前,我们仅需了解该文件称作settings.py。
  在早期版本中,BASE_DIR设置变量是以字符串形式创建的,如下所示。
  
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  
  其中,os包被导入settings.py文件中,并通过os.path.join函数连接路径,如下所示。
  
STATIC_ROOT = os.path.join(BASE_DIR, ”static”) # Django 3.0 and earlier
  
  在Django 3.1中,BASE_DIR表示一个pathlib.Path对象,它的分配方式如下。
BASE_DIR = Path(__file__).resolve().parent.parent
  
  路径对象和字符串可以使用pathlib.Path重载的/(除法)运算符进行连接。
  
STATIC_ROOT = BASE_DIR / ”static” # Django 3.1
  
  除此之外,os.path.join函数还可以用于连接pathlib.Path对象,前提是它已首先被导入settings.py文件中。
  由于生产环境中大多数Django项目都使用3.1之前的Django版本,因此在本书中我们选择使用os.path.join函数连接路径,当创建一个新的Django项目时,我们将使用高于3.1的最新的Django版本。因此,为了确保兼容性,仅需在settings.py文件的开始处添加一行代码,如下所示。
  
import os
  
  添加代码后,即可直接使用本书的指令。另外,在开始与settings.py文件协同工作时,本书还将会针对这一修改内容提醒读者。
  除了这一细微变化,本书中的示例代码、练习和操作无须做任何修改即可支持 Django?3.0或3.1。尽管我们无法百分之百确定,但本书中的代码应能够与Django后续版本实现良好的协同工作。
DB Browser for SQLite
  在开发项目时,本书采用SQLite作为磁盘数据库。Django提供了一个命令行界面,用于通过文本命令访问其数据,但也可采用GUI应用程序以更友好的方式浏览数据。
  这里,推荐使用的工具是DB Browser for SQLite,或简称为DB Browser,它是一个跨平台(Windows、macOS和Linux)的GUI应用程序。
在Windows上安装
  (1)访问https://sqlitebrowser.org/dl/,下载正确的Windows架构(32位或64位)的安装程序。
  (2)运行下载后的安装程序,并遵循Setup Wizard指令,如图0.1所示。
  (3)在接受了End-User License Agreement后,用户将被询问选择应用程序的快捷方式(shortcut),如图0.2所示。这里,建议针对DB Browser启用Desktop和Program Menu快捷方式,以便安装完毕后易于找到应用程序。
图0.1 Setup Wizard页面
图0.2 选择应用程序快捷方式的页面
  (4)单击Next按钮以选择默认内容。
  (5)如果在步骤(3)中未添加Desktop或Program Menu快捷方式,则需要在C:\\ Program Files\\DB Browser for SQLite中查找DB Browser。
在macOS上安装
  (1)访问https://sqlitebrowser.org/dl/,下载macOS的应用程序磁盘镜像。
  (2)在下载结束后,打开磁盘镜像,如图0.3所示。
图0.3 磁盘镜像
  此处,将DB Browser for SQLite应用程序拖曳至Applications安装文件夹中进行安装。
  (3)安装完毕后,在Applications文件夹中启动DB Browser for SQLite。
在Linux上安装
  Linux的安装指令取决于所使用的发行版本,读者可参考https://sqlitebrowser.org/dl/查看安装指令。
使用DB Browser
  此处的一组截图显示了一组DB Browser特性,对应截图取自macOS,具体行为在所有平台上均较为相似。在图0.4中,打开后的第一步是选择SQLite数据库文件。
  在打开了数据库文件后,即可在Database Structure选项卡中查看其结构,如图0.5所示。
图0.4 数据库打开对话框
图0.5 包含单一展开表的数据库结构
  图0.5中展开了reviews_book表,进而可查看其表结构。除此之外,还可通过切换至Browse Data选项卡浏览表中的数据,如图0.6所示。
图0.6 reviews_book表中的数据
  最后一项工作是执行SQL语句(参见第2章)。该操作可在Execute SQL选项卡中完成,如图0.7所示。
  图0.7显示了执行SQL语句SELECT * FROM reviews_book后的结果。
  如果尚不不清楚其中的含义,读者不必过于担心(此处甚至未包含尝试所用的SQLite文件)。一旦学习了Django模型、数据库和SQL查询,读者就会理解其中的内容,并开始使用DB Browser。
图0.7 包含结构显示的SQL执行命令
本书项目
  本书将以渐进方式构建一个名为Bookr的应用程序,以使用户能够浏览和添加图形评论(以及图书)。在完成了各章的练习和操作后,读者将能够向应用程序中添加更多特性。本书的GitHub存储库包含用于练习和操作的单独文件夹,这些文件夹通常包含应用程序代码已更改过的文件。
最终的目录
  每章代码都包含一个名为final的目录,该目录包含本章编写的全部应用程序代码。例如,第5章中的final文件夹将包含截止该章的Bookr应用程序的全部代码。通过这种方式,读者可快速查找到当前的学习进度。
  在将GitHub存储库的代码下载至磁盘中后(稍后将讨论如何从存储库中下载代码),图0.8显示了章目录结构。
图0.8 Bookr的章级别的目录结构
填写数据
  建议读者利用所提供的示例图书列表填写数据库。在第2章中,我们提供了一个脚本以快速填写数据。
安装代码包
  读者可访问http://packt.live/3nIWPvB下载GitHub存储库中的代码文件。请参阅这些代码文件以获得完整的代码包。这些代码文件包含练习、操作、操作的解决方案以及每章的中间代码。
  在GitHub存储库页面上,可单击绿色的Code按钮,随后单击Download ZIP选项,进而将完整代码作为ZIP文件下载至磁盘上,如图0.9所示。随后可将这些代码文件解压至所选的文件夹中,如C:\\Code。
图0.9 Download ZIP选项
读者反馈和客户支持
  欢迎读者对本书提出建议或意见。
  对此,读者可向customercare@packtpub.com发送邮件,并以书名作为邮件标题。
勘误表
  尽管我们希望做到尽善尽美,但书中不足依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub.com/ submit/errata,选取对应书籍,输入并提交相关问题的详细说明。
版权须知
  一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知我们网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
  若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。
问题解答
  读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
  
  
  
  
  
  
  
·XVI·
Django Web项目开发实战
  
·XVII·
前 言

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.