第四章 视图 4.1 探究视图 一.视图说明 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求和生成相应的相应部分,然后在页面或其它类型文档中显示.也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑. 下面是视图函数的return相应类型: 相应类型 说明 HttpResponse('Hello world') HTTP状态码200,请求已成功被服务器接收 HttpResponseRedirect('/admin/') HTTP状态码302…
第13章 第三方功能应用 在前面的章节中,我们主要讲述Django框架的内置功能以及使用方法,而本章主要讲述Django的第三方功能应用以及使用方法.通过本章的学习,读者能够在网站开发过程中快速开发网站API.生成网站验证码.实现搜索引擎.实现第三方用户注册和分布式任务. 13.1 快速开发网站API 网站API也成为接口,接口其实与网站的URL地址是同一个原理.当用户使用GET或者POST方式访问接口时,接口以JSON或字符串的数据内容返回给用户,这与网站的URL地址返回的数据格式有所不同,网…
1,建站步骤:1)django-admin.exe startproject mysite 创建完后的目录结构: - mysite # 对整个程序进行配置 - init - settings # 配置文件 - url # URL对应关系 - wsgi # 遵循wsgi规范,处理soceket的规范,一般用uwsgi - manage.py # 管理django程序,例如runserver,startapp,makemigration,migrate 备注:如果不是pycharmproject根目…
1. 带变量的URL #urls.py from django.urls import path from .view import * urlpatterns = [ path('',index_views), #添加带有整数的字符类型.整形和slug的URL path('<year>/<int:month>/<slug>',mydate_views), ] URL变量类型: 字符类型 : 默认类型,匹配任何非空字符串,但不含'/' int : 整型 slug : 可…
第十二章 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在网页的表单中生成一个隐含字段…
第十章 常用的Web应用程序 Django为开发者提供了常见的Web应用程序,如会话控制.高速缓存.CSRF防护.消息提示和分页功能.内置的Web应用程序大大优化了网站性能,并且完善了安全防护机制,而且也提高了开发者的开发效率. 10.1 会话控制 Django内置的会话控制简称为Session,可为访问者提供基础的数据存储.数据主要存储在服务器上,并且网站的任意站点都能使用会话数据.当用户第一次访问网站时,网站的服务器将自动创建一个Session对象,该Session对象相当于该用户在网站的一…
第六章 模型与数据库 Django对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite和Oracle,而且为这些数据库提供了统一的调用API,这些API统称为ORM框架.通过使用Django内置的ORM框架可以实现数据库连接和读写操作. 6.1 构建模型 ORM框架是一种程序技术,用于实现面向对象编程语言中不同类型系统的数据之间的转换.从效果上说,其实是创建了一个可在编程语言中使用的"虚拟对象数据库",通过对虚拟对象数据库操作从而实现对目标数控的操作,虚拟…
第五章 模板 Django作为web框架,需要一种很便利的方法去动态地生成HTML网页,因此有了模板这个概念.模板包含所需HTML的部分代码以及一些特殊语法 Django可以配置一个或多个模板引擎(甚至是0,如果不需要使用模板),模板系统有Django模板语言(Django Template Language, DTL)和Jinja2.Django模板语言是Django内置的模板语言,Jinja2是当前Python最流行的模板语言. 5.1 变量与标签 变量是模板中最基本的组成单位,模板变量是由…
11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1.网页顶部搜索:每个网页都具备基本功能,而且每个网页的实现方式和原理是相同的. 2.歌曲分类筛选:根据歌曲信息表song的song_type字段对歌曲进行筛选,并显示在网页左侧的歌曲分类中. 3.歌曲信息列表:在网页上显示播放次数排在前10条的歌曲信息. 歌曲排行榜是由项目music的项目应用rank…