第七章 表单与模型 表单是搜集用户数据信息的各种表单元素的集合,作用是实现网页上的数据交互,用户在网站输入信息,然后提交到网站服务器端进行处理(如数据录入和用户登录.注册等). 用户表单是web开发的一项基本功能,Django的表单功能有Form类实现,主要分为两种:django.forms.Form和django.forms.ModelForm.前者是一个基础的表单功能,后者是在前者的基础上结合模型所生成的数据表单. 7.1 初识表单 传统的表单生成方式是在模板文件总编写HTML代码实现,在H…
1. 表单字段 参考: 官方文档 Django表单字段汇总 2. 表单代码示例(forms.Form) # form.py代码 # 获取数据库数据 choices_list = [(i+1,v['typename']) for i,v in \ enumerate(ProductType.objects.values('typename'))] # 自定义数据验证函数 def price_validate(value): if int(value) <= 0: print("******已…
第13章 第三方功能应用 在前面的章节中,我们主要讲述Django框架的内置功能以及使用方法,而本章主要讲述Django的第三方功能应用以及使用方法.通过本章的学习,读者能够在网站开发过程中快速开发网站API.生成网站验证码.实现搜索引擎.实现第三方用户注册和分布式任务. 13.1 快速开发网站API 网站API也成为接口,接口其实与网站的URL地址是同一个原理.当用户使用GET或者POST方式访问接口时,接口以JSON或字符串的数据内容返回给用户,这与网站的URL地址返回的数据格式有所不同,网…
10.3 CSRF防护 CSRF(跨站请求伪造)也成为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,窃取网站的用户信息来制作恶意请求. Django为了防护这类攻击,在用户提交表单时,表单会自动加入csrftoken的隐含值,这个隐含值会与网站后台保存的csrftoken进行匹配,只有匹配成功,网站才会处理表单数据.这种防护机制称为CSRF防护,原理如下: 1.在用户访问网站时,Django在网页的表单中生成一个隐含字段…
第六章 模型与数据库 Django对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite和Oracle,而且为这些数据库提供了统一的调用API,这些API统称为ORM框架.通过使用Django内置的ORM框架可以实现数据库连接和读写操作. 6.1 构建模型 ORM框架是一种程序技术,用于实现面向对象编程语言中不同类型系统的数据之间的转换.从效果上说,其实是创建了一个可在编程语言中使用的"虚拟对象数据库",通过对虚拟对象数据库操作从而实现对目标数控的操作,虚拟…
11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1.网页顶部搜索:每个网页都具备基本功能,而且每个网页的实现方式和原理是相同的. 2.歌曲分类筛选:根据歌曲信息表song的song_type字段对歌曲进行筛选,并显示在网页左侧的歌曲分类中. 3.歌曲信息列表:在网页上显示播放次数排在前10条的歌曲信息. 歌曲排行榜是由项目music的项目应用rank…
第十一章 音乐网站开发 本章以音乐网站项目为例,介绍Django在实际项目开发中的应用,该网站共分为6个功能模块分别是:网站首页.歌曲排行榜.歌曲播放.歌曲点评.歌曲搜索和用户管理. 11.1 网站需求与设计 当我们接到一个项目的时候,首先需要了解项目的具体需求,根据需求类型划分网站功能,并了解每个需求的业务流程.本节以音乐网站为例进行介绍,整个网站的功能分为:网站首页.歌曲排行榜.歌曲播放.歌曲搜索.歌曲点评和用户管理,各个功能说明如下: 1.网站首页是整个网站的主界面,主要显示网站最新的动态…
9.4 设置用户权限 用户权限主要是对不同的用户设置不同的功能使用权限,而每个功能主要以模型来划分.以9.3节的MyDjango项目为例,在Admin后台管理系统可以查看并设置用户权限,如下图: 用户权限设置 上图左边列表框中列出了整个项目的用户权限,以user|用户|Can add user为例: 1.user代表项目的App. 2.用户代表App所定义的模型MyUser. 3.Can add user代表该权限可对模型MyUser执行新增操作. 一般情况下,在执行数据迁移时,每个模型默认拥有…
第九章 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系统,可以将配置信息删除,这样可以减少程序对系统资源的占用…
1,建站步骤:1)django-admin.exe startproject mysite 创建完后的目录结构: - mysite # 对整个程序进行配置 - init - settings # 配置文件 - url # URL对应关系 - wsgi # 遵循wsgi规范,处理soceket的规范,一般用uwsgi - manage.py # 管理django程序,例如runserver,startapp,makemigration,migrate 备注:如果不是pycharmproject根目…
第十二章 Django项目上线部署 目前部署Django项目有两种主流方案:Nginx+uWsGI+Django或者Apache+uWSGI+Django.Nginx作为服务器最前端,负责接收浏览器的所有请求并统一管理.静态请求由Nginx自己处理:非静态请求通过uWSGI服务器传递给Django应用,由Django进行处理并做出相应,从而完成一次Web请求.本章以Nginx+uWSGI+Django为例讲述如何在linux系统上部署Django应用. 12.1 按照python3 Centos…
第十章 常用的Web应用程序 Django为开发者提供了常见的Web应用程序,如会话控制.高速缓存.CSRF防护.消息提示和分页功能.内置的Web应用程序大大优化了网站性能,并且完善了安全防护机制,而且也提高了开发者的开发效率. 10.1 会话控制 Django内置的会话控制简称为Session,可为访问者提供基础的数据存储.数据主要存储在服务器上,并且网站的任意站点都能使用会话数据.当用户第一次访问网站时,网站的服务器将自动创建一个Session对象,该Session对象相当于该用户在网站的一…
第五章 模板 Django作为web框架,需要一种很便利的方法去动态地生成HTML网页,因此有了模板这个概念.模板包含所需HTML的部分代码以及一些特殊语法 Django可以配置一个或多个模板引擎(甚至是0,如果不需要使用模板),模板系统有Django模板语言(Django Template Language, DTL)和Jinja2.Django模板语言是Django内置的模板语言,Jinja2是当前Python最流行的模板语言. 5.1 变量与标签 变量是模板中最基本的组成单位,模板变量是由…
第四章 视图 4.1 探究视图 一.视图说明 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求和生成相应的相应部分,然后在页面或其它类型文档中显示.也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑. 下面是视图函数的return相应类型: 相应类型 说明 HttpResponse('Hello world') HTTP状态码200,请求已成功被服务器接收 HttpResponseRedirect('/admin/') HTTP状态码302…
第三章 编写URL规则 URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源位置和访问方法简洁的表示,是互联网上标准资源的地址. 在App里由于Django默认没有urls文件需要新建一个urls路由文件,是将属于App中的URL都写入到该文件中,而项目根目录的urls.py是将每个App的urls.py统一管理.当程序收到用户请求的时候,首先在根目录的urls.py查找该URL是属于那个App,然后再从App的urls.py找到具体的URL信息…
1. 模板内置标签 Django常用内置标签 标签 描述 {% for %} 遍历输出变量的内容 {% if %} 对变量进行条件判断 {% csrf_token %} 生成csrf_token标签,用于防护跨站请求伪造攻击 {% url %} 引用路由配置地址,生成相应的URL地址 {% with %} 将变量名重新命名 {% load %} 加载导入Django的标签库 {% static %} 读取静态资源文件 {% extends xxx %} 模板继承,xxx为模板文件名,使当前模板继…
1. 发送邮件 # settings.py设置 # 邮箱设置 EMAIL_USE_SSL = True # 邮件服务器 EMAIL_HOST = 'smtp.qq.com' # 邮件服务端口 EMAIL_PORT = 465 # 发送邮件账号 EMAIL_HOST_USER = "1223936862@qq.com" # SMTP服务密码 EMAIL_HOST_PASSWORD = "oxwxxxxxgbrvjejc" DEFAULT_FROM_EMAIL = EM…
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 : 可…
<玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一定规则,使用HTML(标准通用标记语言下的一个应用)等工具制作并用于展示特定内容相关网页的集合.简单地说,网站是一种沟通工具,人们可以通过网站来发布自己想要公开的咨询,或者利用网站来提供相应的网络服务,也可以通过网页浏览器来访问网站,获取自己需要的咨询或者享受网络服务. 在早期,域名,空间服务器与程序是网站的…
<玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息.配置信息主要由项目对“setting”实现,主要配置有项目路径,密钥配置,域名访问权限,App列表,配置静态资源,配置模板文件,数据配置,中间件和缓存配置. 一.基本配置信息 一个简单对项目必须具备对基本配置信息有:项目路径,密钥配置,域名访问权限,App列表和中间件.以“MyWeb”项目为例,setting…
<玩转Django2.0>读书笔记-探究视图 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求和生成相应的响应内容,然后在页面或其他类型文档中显示.也可以理解为视图是MVC架构里面的C部分(控制器),主要处理功能和业务上的逻辑. 一.构建网页内容 1>.视图函数的retrurn的多种响应类型 在上一个篇博客里我们看到视图函数都是通过return方式返回数据内容的,然后生成响应的网页内容呈现在浏览…
<玩转Django2.0>读书笔记-编写URL规则 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到对资源位置和访问方法对一种简介对表示,是互联网砂锅标准资源的地址.互联网上的每个文件都有一个唯一的URL,用于指出文件的路径为孩子.简单地说,URL就是常说的网址,每个地址代表不同的网页,在Django中,URL也称为URLconf. 一.URL编写规则 如下图所示,在讲解URL编写…
我们准备在搬瓦工笔记中,边整理和分享利用Linux VPS建站过程的同时,也会分享关于用户在选择和使用VPS服务器以及网站管理运营中的一些心得和建议.经常有很多网友在很多主机论坛.QQ群众问道,有没有速度好.稳定的VPS主机产品,最好还是便宜的. 很多在问这些问题的网友可能也是新接触VPS服务器的用户,因为他们并不清楚商家的产品价格与性价比之间的关系,以及我们项目使用过程中需要用到哪些或者说可以选择到哪些产品.在这篇文章,我将会整理关于适合新手用户选择VPS服务器可能遇到的基础问题,至少我们不用…
知识储备:HTML表单form学习 表单,在前端页面中属于最常见的一个东西了.基本上网站信息的提交都用到了表单,所以下面来学习Django中优雅的表单系统:Form 表单的主要作用是在网页上提供一个图形用户页面,用作采集和提供用户输入数据. 表单的基本结构: <form></form> 1,from表单常用属性 action :表单提交的服务器地址,也就是服务器接收表单数据的url地址 method:表单提交数据的方法(一般为get/post) name:最好是name属性的唯一性…
一.表单form 为了接收用户的投票选择,我们需要在前端页面显示一个投票界面.让我们重写先前的polls/detail.html文件,代码如下: <h1>{{ question.question_text }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{% url 'p…
一.COOKIE 与 SESSION 1.简介 1.cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地:当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了. 2.cookie虽然在一定程度上解决了“保持状态”的需求,但是由于cookie本身最大支持4096字节,以及cooki…
前言:本文主要针对自定义下拉表单制作,下拉表单的内容是取至于数据库,即动态实现下拉表单 正文: 动态实现下拉表单有两种方法: 一.自己手动写 html 模板中的 <form ...> </form> 在views 中,将所需要的数据传递过去,比如 names_list = [1, 2, 3, 4] 在 html 中 <select> {% for x in name_list %} <option value ="{{ x }}">{{…
表单标签: <form> 表单标签是最常用的标签,用于与服务器端的交互. <input>:输入标签:接受用户输入信息 其中type属性指定输入标签的类型 文本框 text:输入的文本信息直接显示在框中. 密码框 password:输入的文本以圆点或者型号的形式显示. 单选框 radio:如:性别选择. 复选框 checkbox:如:兴趣选择. 隐藏字段 hidden:在页面上不显示,但在提交的时候随其他内容一起提交. 提交按钮 submit:用于提交表单中的内容. 重置按钮 res…
大家愚人节快乐!表单是沟通服务器端和客户端的桥梁,为数据从客户端传到服务端打开了一扇大门.AngularJS增加了一些新特性,使我们能够更加方便的操作表单.OK!开始学习!学习使我快乐. 一.双向数据绑定 前面已经提到了双向数据绑定,一般而言我们总是从模型中拿到数据放到视图,双向数据绑定提供了这样一种机制,可以将视图中的数据放到模型.下面测试一下 <!DOCTYPE html> <html lang="en" ng-app='myApp'> <head&g…