前 言
Python是当前热门的开发语言之一,它有着广泛的应用领域,在网络爬虫、Web开发、数据分析和人工智能等领域都受到开发者的热爱和追捧。现在很多企业开始使用Python作为网站服务器的开发语言,因此掌握Web开发是Python开发者必不可少的技能之一。
Django是Python开发网站的首选Web框架,这归功于Django较强的规范性,规范了开发人员的编码要求,以符合企业的规范化管理。正因如此,Django成为开发人员必学的Web框架之一。
本书讲述的内容基于Django 3.1或以上版本,知识跨度从网站开发入门到网站架构设计,通过本书的学习,读者不仅可以精通Django框架的应用,还能一步一步走向架构师之路。
本书结构
本书共分17章,各章内容概述如下:
第1章介绍网站的基础知识和Django的环境搭建,分别讲述了网站的定义、分类、运行原理、Django的安装、搭建开发环境、项目创建与调试和前端开发基础知识。
第2章介绍Django的项目配置,包括基本配置、静态资源文件、模板路径、数据库配置和中间件。
第3章讲述路由的编写规则,包括路由变量的设置、设置正则表达式、命名空间与路由命名、路由的反向解析和重定向。
第4章介绍视图函数的定义方法,在视图函数中讲述用户的响应方式、文件下载、HTTP请求信息、文件上传、Cookie反爬虫功能和请求头反爬虫功能。
第5章讲述视图类的定义与使用,视图类根据用途划分为三部分:数据显示视图、数据操作视图和日期筛选视图。
第6章讲解模板的编写方法,分别讲述Django模板引擎和Jinja2模板引擎的使用,包括模板的变量、标签、模板继承、标签和过滤器的定义与使用。
第7章讲述模型的定义与使用,比如模型的定义与数据迁移、数据表的数据关系和数据的读写操作,通过操作模型对象实现数据表的读写,并讲述数据表的动态创建和MySQL分表功能。
第8章介绍表单的定义与使用,主要讲述表单与模型的结合生成数据表单,并通过数据表单操作实现数据表的数据读写,如同一网页多个表单、一个表单多个按钮、表单批量处理和多文件批量上存等常见的Web应用。
第9章介绍Django内置的Admin后台系统,讲述Admin的基本设置以及一些常用功能的二次开发。
第10章介绍Django内置的Auth认证系统,讲述内置模型User的使用和扩展,实现用户注册和登录功能、用户权限的设置和用户组的设置。
第11章介绍Django常用的内置功能,包括会话Session、缓存机制、CSRF防护、消息框架、分页功能、国际化和本地化、单元测试、自定义中间件、异步编程(多线程的应用、ASGI服务、异步视图以及异步与同步的转换)、信号机制。
第12章介绍Django的第三方功能应用,如DRF框架开发API接口、生成网站验证码、站内搜索引擎、第三方网站实现账号注册、异步任务和定时任务、即时通信实现在线聊天。
第13章讲述信息反馈平台的开发,信息反馈平台的功能包括信息反馈页面、Admin后台系统、自定义异常机制和单元测试。
第14章讲述博客系统的开发,网站功能包括用户(博主)注册和登录、博主资料信息、图片墙功能、留言板功能、文章列表、文章正文内容和Admin后台系统。
第15章讲述音乐网站平台的开发,网站主要功能有首页、排行榜、歌曲播放、歌曲点评、歌曲搜索、用户注册和登录、用户中心、Admin后台管理和网站异常机制。
第16章分别讲述前后端分离的开发模式和微服务架构设计原理。Django只需编写API接口,网站的业务逻辑、数据渲染以及动态信息由前端完成;微服务是一种网站架构概念,包含了开发、测试、部署和运维等多方面因素,并讲述了微服务的JWT认证、服务发现与注册等功能。
第17章分别讲述Django如何部署在Windows和Linux系统。Windows系统采用IIS服务器+wfastcgi+Django实现部署过程;Linux系统采用Nginx+uWSGI+Django实现部署过程。
本书特色
循序渐进,知识全面:本书站在初学者的角度,围绕新版本Django 3框架展开讲解,从初学者必备的基础知识着手,循序渐进地介绍了Django 3的各种知识,包括基本概念、功能特性、工具使用、扩展知识等,内容几乎涵盖了Django 3的所有功能,是一本内容全面的实战技术指南。
注重实战,项目丰富:为提升读者的开发技能,本书精选了编者近年来参与开发的3个项目,这些项目各有不同功能,并全部给出了功能架构描述和代码实现,可以使读者真实地学到如何用Django开发一个项目,解决开发中可能遇到的各种问题,是提升读者实际开发能力的最佳实践。
技术先进,与时俱进:近年来全栈与微服务开发获得广泛应用,毫无疑问,Django框架同样可以实现微服务架构,因此本书专门有一章内容讲解了前后端分离开发模式以及微服务开发的相关知识,此外,Django 3新引入的异步编程也在本书中进行了详细讲解,读者从本书可以深切地感到编者在这方面的用心。
可以这样说,本书集新版本特性、开发心得与前沿技术为一体,任何使用Django开发Web项目的读者都可以从本书中获益。
源代码下载
本书所有程序代码均在Python 3.8和Django 3.1下调试通过,源码GitHub下载地址:
https://github.com/xyjw/Django-Web
或者扫描下面的二维码下载:
如果你在下载过程中遇到问题,可发送邮件至booksaga@126.com获得帮助,邮件标题为“Django3 Web应用开发实战”。
读者对象
本书主要适合以下读者阅读:
? Django初学者及在校学生
? Django开发工程师
? 从事Python网站开发的技术人员
? 其他对Django感兴趣的人员
虽然笔者力求本书更臻完美,但由于水平所限,难免会出现错误,特别是Django版本更新可能导致源代码在运行过程中出现问题,欢迎广大读者和专家给予指正,笔者将十分感谢。
黄永祥
2021年5月1日