摘要:
数据库表反向生成(二) Django ORM inspectdb 这里我们开始说如何在django中反向生成mysql model代码。 我们在展示django ORM反向生成之前,我们先说一下怎么样正向生成代码。 正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据 阅读全文
摘要:
前后端分离开发入门 在传统的Web应用开发中,大多数的程序员会将浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端。所谓前后端分离的开发,就是前后端工程师约定好数据交互接口,并行的进行开发和测试,后端只提供数据, 阅读全文
摘要:
中间件的应用 实现登录验证 我们继续来完善投票应用。在上一个章节中,我们在用户登录成功后通过session保留了用户信息,接下来我们可以应用做一些调整,要求在为老师投票时必须要先登录,登录过的用户可以投票,否则就将用户引导到登录页面,为此我们可以这样修改视图函数。 前端页面在收到 后,可以将用户引导 阅读全文
摘要:
报表和日志 导出Excel报表 报表就是用表格、图表等格式来动态显示数据,所以有人用这样的公式来描述报表: 有很多的三方库支持在Python程序中写Excel文件,包括 "xlwt" 、 "xlwings" 、 "openpyxl" 、 "xlswriter" 、 "pandas" 等,其中的xlw 阅读全文
摘要:
Cookie和Session 实现用户跟踪 如今,一个网站如果不通过某种方式记住你是谁以及你之前在网站的活动情况,失去的就是网站的可用性和便利性,继而很有可能导致网站用户的流式,所以记住一个用户(更专业的说法叫 用户跟踪 )对绝大多数Web应用来说都是必需的功能。 在服务器端,我们想记住一个用户最简 阅读全文
摘要:
表单的应用 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功能,并限制只有登录的用户才能为老师投票。Django框架中提供了对表单的封装,而且提供了多种不同的使用方式。 首先添加用户模型。 通过生成迁移和执行迁移操作,在数据库中创建对应的用户表。 定制一个非常简单的注册模板页面。 阅读全文
摘要:
静态资源和Ajax请求 我们就尝试实现一个投票应用,具体的需求是用户进入应用首先查看到“学科介绍”页面,该页面显示了一个学校所开设的所有学科;通过点击某个学科,可以进入“老师介绍”页面,该页面展示了该学科所有老师的详细情况,可以在该页面上给老师点击“好评”或“差评”;如果用户没有登录,在投票时会先跳 阅读全文
摘要:
深入模型 Django是基于MVC架构的Web框架,MVC架构追求的是“模型”和“视图”的解耦合。所谓“模型”说得更直白一些就是数据(的表示),所以通常也被称作“数据模型”。在实际的项目中,数据模型通常通过数据库实现持久化操作,而关系型数据库在过去和当下都是持久化的首选方案,下面我们以MySQL为例 阅读全文
摘要:
快速上手 Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种方式就变得极度糟糕。为了解决这个问题,开发人员想到了用外部程序来为Web服务器生成动态内容,也就是说HTML页面以及页面中的动态内容不再通过手动编写而是通过程 阅读全文
摘要:
Web前端概述 HTML简史 1. 1991年10月:一个非正式CERN( "欧洲核子研究中心" )文件首次公开18个HTML标签,这个文件的作者是物理学家 "蒂姆·伯纳斯 李" ,因此他是 "万维网" 的发明者,也是 "万维网联盟" 的主席。 2. 1995年11月:HTML 2.0标准发布(RF 阅读全文
摘要:
Python语言进阶 重要知识点 生成式(推导式)的用法 说明:生成式(推导式)可以用来生成列表、集合和字典。 嵌套的列表的坑 "Python Tutor" VISUALIZE CODE AND GET LIVE HELP 模块(堆排序) 模块 模块 常用的工具类: :命令元组,它是一个类工厂,接受 阅读全文
摘要:
图像和办公文档处理 用程序来处理图像和办公文档经常出现在实际开发中,Python的标准库中虽然没有直接支持这些操作的模块,但我们可以通过Python生态圈中的第三方模块来完成这些操作。 操作图像 计算机图像相关知识 1. 颜色。如果你有使用颜料画画的经历,那么一定知道混合红、黄、蓝三种颜料可以得到其 阅读全文
摘要:
网络编程入门 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享。今天计算机网络中的设备和计算机网络的用户已经多得不可计数,而计算机网络也可以称得上是一个“复杂巨系统”,对于这样的系统,我们不可能用一两篇文章把它讲清楚,有 阅读全文
摘要:
进程和线程 今天我们使用的计算机早已进入多CPU或多核时代,而我们使用的操作系统都是支持“多任务”的操作系统,这使得我们可以同时运行多个程序,也可以将一个程序分解为若干个相对独立的子任务,让多个子任务并发的执行,从而缩短程序的执行时间,同时也让用户获得更好的体验。因此在当下不管是用什么编程语言进行开 阅读全文
摘要:
使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要,正则表达式就是用于描述这些规则的工具,换句话说正则表达式是一种工具,它定义了字符串的匹配模式(如何检查一个字符串是否有跟某种模式匹配的部分或者从一个字符串中将与模式匹配的部分提取出来或者替 阅读全文
摘要:
面向对象进阶 为了能够更好的使用面向对象编程思想进行程序开发,我们需要对Python中的面向对象编程进行更为深入的了解。 @property装饰器 之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋 阅读全文
摘要:
类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征 阅读全文
摘要:
玩转Linux操作系统 说明:本文中对Linux命令的讲解都是基于名为CentOS的Linux发行版本,我自己使用的是阿里云服务器,系统版本为CentOS Linux release 7.6.1810。不同的Linux发行版本在Shell命令和工具程序上会有一些差别,但是这些差别是很小的。 操作系统 阅读全文
摘要:
NoSQL入门 NoSQL概述 如今,大多数的计算机系统(包括服务器、PC、移动设备等)都会产生庞大的数据量。其实,早在2012年的时候,全世界每天产生的数据量就达到了2.5EB(艾字节,$$1EB\approx10^{18}B$$)。这些数据有很大一部分是由关系型数据库来存储和管理的。 早在197 阅读全文
摘要:
关系数据库入门 关系数据库概述 1. 数据持久化 将数据保存到能够长久保存数据的存储介质中,在掉电的情况下数据也不会丢失。 2. 数据库发展史 网状数据库、层次数据库、关系数据库、NoSQL数据库。 1970年,IBM的研究员E.F.Codd在 Communication of the ACM 上发 阅读全文