第六章 模型与数据库 Django对各种数据库提供了很好的支持,包括:PostgreSQL.MySQL.SQLite和Oracle,而且为这些数据库提供了统一的调用API,这些API统称为ORM框架.通过使用Django内置的ORM框架可以实现数据库连接和读写操作. 6.1 构建模型 ORM框架是一种程序技术,用于实现面向对象编程语言中不同类型系统的数据之间的转换.从效果上说,其实是创建了一个可在编程语言中使用的"虚拟对象数据库",通过对虚拟对象数据库操作从而实现对目标数控的操作,虚拟…
11.5 歌曲排行榜 歌曲排行榜是通过首页的导航链接进入的,按照歌曲的播放次数进行降序显示.从排行榜页面的设计图可以看到,网页实现三个功能:网页顶部搜索.歌曲分类筛选和歌曲信息列表,其说明如下: 1.网页顶部搜索:每个网页都具备基本功能,而且每个网页的实现方式和原理是相同的. 2.歌曲分类筛选:根据歌曲信息表song的song_type字段对歌曲进行筛选,并显示在网页左侧的歌曲分类中. 3.歌曲信息列表:在网页上显示播放次数排在前10条的歌曲信息. 歌曲排行榜是由项目music的项目应用rank…
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…
第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在网页的表单中生成一个隐含字段…
第十章 常用的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…
第十一章 音乐网站开发 本章以音乐网站项目为例,介绍Django在实际项目开发中的应用,该网站共分为6个功能模块分别是:网站首页.歌曲排行榜.歌曲播放.歌曲点评.歌曲搜索和用户管理. 11.1 网站需求与设计 当我们接到一个项目的时候,首先需要了解项目的具体需求,根据需求类型划分网站功能,并了解每个需求的业务流程.本节以音乐网站为例进行介绍,整个网站的功能分为:网站首页.歌曲排行榜.歌曲播放.歌曲搜索.歌曲点评和用户管理,各个功能说明如下: 1.网站首页是整个网站的主界面,主要显示网站最新的动态…
第三章 编写URL规则 URL(Uniform Resource Locator,统一资源定位符)是对可以从互联网上得到的资源位置和访问方法简洁的表示,是互联网上标准资源的地址. 在App里由于Django默认没有urls文件需要新建一个urls路由文件,是将属于App中的URL都写入到该文件中,而项目根目录的urls.py是将每个App的urls.py统一管理.当程序收到用户请求的时候,首先在根目录的urls.py查找该URL是属于那个App,然后再从App的urls.py找到具体的URL信息…
第七章 表单与模型 表单是搜集用户数据信息的各种表单元素的集合,作用是实现网页上的数据交互,用户在网站输入信息,然后提交到网站服务器端进行处理(如数据录入和用户登录.注册等). 用户表单是web开发的一项基本功能,Django的表单功能有Form类实现,主要分为两种:django.forms.Form和django.forms.ModelForm.前者是一个基础的表单功能,后者是在前者的基础上结合模型所生成的数据表单. 7.1 初识表单 传统的表单生成方式是在模板文件总编写HTML代码实现,在H…
1. 模板内置标签 Django常用内置标签 标签 描述 {% for %} 遍历输出变量的内容 {% if %} 对变量进行条件判断 {% csrf_token %} 生成csrf_token标签,用于防护跨站请求伪造攻击 {% url %} 引用路由配置地址,生成相应的URL地址 {% with %} 将变量名重新命名 {% load %} 加载导入Django的标签库 {% static %} 读取静态资源文件 {% extends xxx %} 模板继承,xxx为模板文件名,使当前模板继…
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("******已…
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服务器可能遇到的基础问题,至少我们不用…
Django 自学笔记兼学习教程第5章第1节--基础增删查改 点击查看教程总目录 第四章介绍了模型类models.Model和创建模型,相当于介绍了数据库表和如何创建数据库表. 这一章将介绍如何使用模型对数据库表进行增删查改, 注意:修改了模型类models.Model后一定要更新数据库(详见第四章第一节第三部分),如果数据库表进行增删查改则不必. 0 - 超实用工具介绍--Django下的交互式命令行 Django项目中,如果在项目实际使用的代码中,通过增删查改实现对应的业务逻辑, 测试起来会…
本文学习笔记参照来源:https://tf.wiki/zh/basic/basic.html 学习笔记类似提纲,具体细节参照上文链接 一些前置的基础 随机数 tf.random uniform(shape()) 两个元素零向量 tf.zeros(shape=(2)) 2x2常量 tf.constant([1,2],[3,4]) 查看形状.类型.值 A.shape A.dtype A.numpy() 矩阵相加 tf.add(A,B) 矩阵相乘 tf.matmul(A,B) 自动求导机制  tf.G…
模板静态  路由 urls.py urlpatterns = [ path("<year>/<int:month>/<slug:day>",mydate), re_path("(?P<year>[0-9]{4}).html",myyear,name='myyear'), ] views.py def mydate(request,year,month,day): print(year,type(year)) print…
express是Node.js的官方唯一推荐的框架,它扩展了http工具以及一些好用的功能.如此好用的东西,赶紧的安装起来: npm install express -g 新版本的express的命令集中到了另一个插件中,简单的如同以前一样的express -V运行的返回不是它的版本号,而是提示"express不是内部或外部命令"了,所以还要安装express-generator,同样: npm install express-generator -g 好了,版本检查如下: $ exp…
1.结构 2.配置详情页路由 router.config.js /** * 配置 路由 */ // 导入组件 import Home from './components/Home.vue' import Follow from './components/Follow.vue' import Column from './components/Column.vue' import UserInfo from './components/UserInfo.vue' import Article…
一,module模块和包的介绍 1,在Python中,一个.py文件就称之为一个模块(Module). 2,使用模块的好处? 最大的好处是大大提高了代码的可维护性 其次,编写代码不必从零开始,我们编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块 另外,使用模块还可以避免函数名和变量名冲突.相同名字的函数和变量完全可以分别存在不同的模块中,因此,不必考虑名字会与其他模块冲突.但是也要尽量不与内置函数名字冲突. 3,种类 1)python标准库 2)第三方模块 3)自…