第十二章 Django项目上线部署 目前部署Django项目有两种主流方案:Nginx+uWsGI+Django或者Apache+uWSGI+Django.Nginx作为服务器最前端,负责接收浏览器的所有请求并统一管理.静态请求由Nginx自己处理:非静态请求通过uWSGI服务器传递给Django应用,由Django进行处理并做出相应,从而完成一次Web请求.本章以Nginx+uWSGI+Django为例讲述如何在linux系统上部署Django应用. 12.1 按照python3 Centos…
10.3 CSRF防护 CSRF(跨站请求伪造)也成为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,窃取网站的用户信息来制作恶意请求. Django为了防护这类攻击,在用户提交表单时,表单会自动加入csrftoken的隐含值,这个隐含值会与网站后台保存的csrftoken进行匹配,只有匹配成功,网站才会处理表单数据.这种防护机制称为CSRF防护,原理如下: 1.在用户访问网站时,Django在网页的表单中生成一个隐含字段…
11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1.网页顶部搜索:每个网页都具备基本功能,而且每个网页的实现方式和原理是相同的. 2.歌曲分类筛选:根据歌曲信息表song的song_type字段对歌曲进行筛选,并显示在网页左侧的歌曲分类中. 3.歌曲信息列表:在网页上显示播放次数排在前10条的歌曲信息. 歌曲排行榜是由项目music的项目应用rank…
第十章 常用的Web应用程序 Django为开发者提供了常见的Web应用程序,如会话控制.高速缓存.CSRF防护.消息提示和分页功能.内置的Web应用程序大大优化了网站性能,并且完善了安全防护机制,而且也提高了开发者的开发效率. 10.1 会话控制 Django内置的会话控制简称为Session,可为访问者提供基础的数据存储.数据主要存储在服务器上,并且网站的任意站点都能使用会话数据.当用户第一次访问网站时,网站的服务器将自动创建一个Session对象,该Session对象相当于该用户在网站的一…
9.4 设置用户权限 用户权限主要是对不同的用户设置不同的功能使用权限,而每个功能主要以模型来划分.以9.3节的MyDjango项目为例,在Admin后台管理系统可以查看并设置用户权限,如下图: 用户权限设置 上图左边列表框中列出了整个项目的用户权限,以user|用户|Can add user为例: 1.user代表项目的App. 2.用户代表App所定义的模型MyUser. 3.Can add user代表该权限可对模型MyUser执行新增操作. 一般情况下,在执行数据迁移时,每个模型默认拥有…
第13章 第三方功能应用 在前面的章节中,我们主要讲述Django框架的内置功能以及使用方法,而本章主要讲述Django的第三方功能应用以及使用方法.通过本章的学习,读者能够在网站开发过程中快速开发网站API.生成网站验证码.实现搜索引擎.实现第三方用户注册和分布式任务. 13.1 快速开发网站API 网站API也成为接口,接口其实与网站的URL地址是同一个原理.当用户使用GET或者POST方式访问接口时,接口以JSON或字符串的数据内容返回给用户,这与网站的URL地址返回的数据格式有所不同,网…
第五章 模板 Django作为web框架,需要一种很便利的方法去动态地生成HTML网页,因此有了模板这个概念.模板包含所需HTML的部分代码以及一些特殊语法 Django可以配置一个或多个模板引擎(甚至是0,如果不需要使用模板),模板系统有Django模板语言(Django Template Language, DTL)和Jinja2.Django模板语言是Django内置的模板语言,Jinja2是当前Python最流行的模板语言. 5.1 变量与标签 变量是模板中最基本的组成单位,模板变量是由…
第十一章 音乐网站开发 本章以音乐网站项目为例,介绍Django在实际项目开发中的应用,该网站共分为6个功能模块分别是:网站首页.歌曲排行榜.歌曲播放.歌曲点评.歌曲搜索和用户管理. 11.1 网站需求与设计 当我们接到一个项目的时候,首先需要了解项目的具体需求,根据需求类型划分网站功能,并了解每个需求的业务流程.本节以音乐网站为例进行介绍,整个网站的功能分为:网站首页.歌曲排行榜.歌曲播放.歌曲搜索.歌曲点评和用户管理,各个功能说明如下: 1.网站首页是整个网站的主界面,主要显示网站最新的动态…
第九章 Auth认证系统 Django除了有强大的Admin管理系统之外,还提供了完善的用户管理系统.整个用户管理系统可分为三大部分:用户信息.用户权限和用户组,在数据库中分别对应数据表auth_user.auth_permission和auth_group. 9.1 内置User实现用户管理 用户管理功能已经是一个网站必备的功能之一,而Django内置了强大的用户管理系统,并且具有灵活的扩展性,可以满足多方面的开发需求.在创建Django项目时,Django已默认使用内置用户管理系统,在set…
第八章 admin后台系统 admin后台系统也成为网站后台管理系统,主要用于对网站前台的信息进行管理,如文字.图片.影音和其他日常使用文件的发布.更新.删除等操作,也包括功能信息的统计和管理,如用户信息.订单信息和访客信息等.简单来说,即使对网站数据库和文件的快速操作和管理系统,以使网页内容能够及时得到更新和调整. 8.1 走进admin 在INSTALLED_APPS中已配置了Django的Admin后台系统,如果网站不需要Admin系统,可以将配置信息删除,这样可以减少程序对系统资源的占用…