后端技术

分页查询的入门打开方式(JavaWeb)

a 夏天 提交于 2020-01-26 19:19:51
技术涵盖(JavaWeb、HTML、Ajax、JQuery、Bootstrap ) 接触这一部分知识的时候,我们经常会做一些小Demo来练手,不可避免的就需要接触到一定量的数据,我们常常需要将 数据从数据库中回显到页面中 ,但是随着 数据量的增加 ,如果不对 数据的查询 或者 显示 进行一定的处理,那么会出现各式各样的问题,例如: 客户端:如果数据同时展示在一个页面中,用户体验效果比较差,操作也是极其不方便 服务端:一次请求,查询到所有的数据,数据传输量过大或导致超时或者响应速度变慢,对于服务器的负荷过大 分页方式 前端 JS 分页 - 不推荐 我们可以请求获取到所有数据后,使用 JavaScript 来进行数据分页显示,单纯的在数据的显示这一方面看确实 美观 了很多,并且这种分页方式要比后端分页 简单 很多 但是如果存在一定数据量的情况下,这种方式着实有一些尴尬,他并没有解决了我们服务端的任何问题,反而会让用户在等待响应数据 耗时过多 , 体验不佳 ,不过它仍然是一种分页方式 在这里我们重点讲解后端分页,所以我们简单的演示一下,也把代码贴出来,由于我们 html 中使用的是 BootStrap 前端框架,所以我们借助了 bootstrap-table 这个前端分页插件 前端 JS 分页 演示代码: ![11.1-01-003](G:\公众号\markdown文件\11

django之choice、ajax初步

爷,独闯天下 提交于 2020-01-25 04:59:46
django之choice参数,ajax choice参数 应用场景:主要是用户性别、用户工作状态、成绩对应 ##在测试文件中运行,需要写以下几个模块 if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day62.settings") import django django.setup() choices = ( (1, 'male'), (2, 'female'), (3, 'others') ) gender = models.IntegerField(choices=choices) ##注意: """ 针对choices字段,如果想拿到数字所对应的的中文或者其他值 不能直接点字段 固定句式 数据对象.get_字段名_display() """ 执行下面两种语句 from app01 import models #1. user_obj = models.Userinfo.objects.filter(pk=2).first() print(user_obj.username) print(user_obj.gender) print(user_obj.get_gender_display()) ''' #会打印出来 nick 1 male #这样存在值的话

用spring boot 解放你的后端

寵の児 提交于 2020-01-23 19:37:45
在讲spring boot之前先讲讲spring WHAT IS SPRING: spring是一个轻量级的企业级Java开发框架 FRAME: CORE OF SPRING: 一: 控制反转(Inversion of Control,缩写为 IoC ) 是面向对象编程中的一种设计原则,可以用来 减低 计算机代码之间的 耦合度 。其中最常见的方式叫做 依赖注入 (Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 是 依赖对象的获得被反转 了,因为大多数应用程序都是由两个或是更多的类通过彼此的合作来实现企业逻辑,这使得每个对象都需要获取与其合作的对象(也就是它所依赖的对象)的引用。如果这个获取过程要靠自身实现,那么这将导致代码高度耦合并且难以维护和调试。 技术描述编辑 Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。 采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。而具体获取的方法、对象被获取时的状态由配置文件

python后端面试第三部分:数据储存与缓存相关--长期维护

感情迁移 提交于 2020-01-22 15:34:57
################## 数据储存与缓存相关 ####################### mysql数据库, redis数据库, 9. MySQL的索引一般是怎么实现的? B-Tree(一般是B+Tree)和Hash,然后再简单介绍一下。 存储 存储可能包含rdbms,nosql以及缓存等,我以MySQL,redis举例。 mysql相关 mysql 是流行的RDBMS 关系型数据库 1.谈谈mysql字符集和排序规则? 2.var char与char的区别是什么?大小限制?utf8字符集下varchar最多能存多少个字符 char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10, 除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。 尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。 再者,char的存储方式是,对英文字符

Linux LB--负载均衡和高可靠

南楼画角 提交于 2020-01-22 05:47:26
1、负载均衡典型应用场景,外网、内网、私网公共服务。 典型场景: (1)用户通过公网访问数据中心的ftp、web、https服务器。 (2) 在数据中心内部东西向访问其他服务时,例如,访问其他虚拟机、DNS等公共服务。 (3) 通过专线或者ipsec vpn访问数据中心内部服务时。 2、常见的负载均衡的技术 硬件实现(2/3层):链路聚合、等价路由。 软件实现(4/7层):LVS、nginx/haproxy、   DNS负载均衡:公网智能分配目的ip GSLB、内网DNS解析公共服务。 3、LVS的3种模式:NAT、DR、TUNNEL。 NAT: 特点,流量来回路径一致,都要经过负载均衡器,通过DNAT转换,将目的ip修改为后端VM的ip,目的MAC修改为后端VM的MAC地址。 缺点:当回程流量很大时,负载均衡器本身容易成为瓶颈。改进方案,使用DR模式。 DR:特点,回程路径直接回到客户端。不需要NAT,后端服务器都需要配置环口ip为VIP,并且配置不响应VIP的arp请求。同时要求LVS分发器和后端VM在相同网段内,这个模式是主流。      缺点:要求后端VM和LVS分发头在相同网段。改进方案:LVS + haproxy. 隧道模式:特点,负载均衡器和后端虚拟机不是直接相连,通过隧道打通,要求双方都要支持IPinIP协议。 LVS + haproxy: 怎么解决跨网问题?

为什么要前后端分离?

走远了吗. 提交于 2020-01-22 03:32:07
为什么要前后端分离? 作者:偏头痛杨 来源:https://blog.csdn.net/piantoutongyang 一、前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的 必经之路 。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中, 名词解释: Web服务器 :一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器 :一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 二、术业有专攻(开发人员分离) 以前的JavaWeb项目大多数都是java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。

千万级用户网站门户前端设计

我们两清 提交于 2020-01-19 19:25:12
千万级用户网站门户前端设计 对于千万级的注册用户的门户项目是前端这块是怎么去实现的,自己在平常的工作中总结了一些经验,也是在不断的挫折中,不断演练的,希望总结出来给大家参考下,和大家一起探讨,一起进步。 一、门户设计一般会遇到哪些难点 (一)、首页打开时间太慢了 在开发一个门户到生产上线后,首页响应时间是检验门户整个系统架构以及开发的重要的一项指标,有时候我们发现在公司测试发现速度都挺快的,怎么到生产首页打开就慢了呢? (二)、页面加载不流畅,总感觉看着不舒服 因为门户一般都是偏向于内容和图片类资源比较多,但是我们打开自己的网页,有时候总感觉加载并不是按照我们期望的那样加载得到,顺其自然,总感觉看起来怪怪的。 (三)、希望用户缓存的地方未进行缓存 很多静态的前端资源,其实在系统未进行更新时候,第一次加载之后,希望缓存到用户的本地,但是因为缓存策略没搞好,经常未进行有效的缓存。 (四)、页面的头部尾部经常需要被第三方嵌入 因为作为一个比较大的门户站点,可能会让很多小的服务接入进来,但是头部和尾部因为是需要保持风格统一,所以经常需要被第三方进行嵌入。 (五)、代码没有进行有效的压缩,导致被窃取 因为作为门户站点,前端如果不进行加密的话,代码很容易被别人进行抄袭伪造,而且还很容易清楚里面的业务逻辑,从而很容易仿造和进行攻击。 (六)、增量静态资源发布 经常门户线上环境需要增加一点小功能

vue前端+nodejs后端通讯最简单demo

主宰稳场 提交于 2020-01-19 07:10:01
vue前端+nodejs后端通讯最简单demo 前言 效果演示 技术架构 前端部分 安装部署 前端代码 运行前端终端 后端部分 安装部署 后端代码: 运行后端终端 结语 项目源码 前言 本文记录vue前端+nodejs后端通讯最简单的方法,供广大网友最快速进入全栈开发。 效果演示 本示例效果如下:前端是一个登陆表单,信息提交给后端,后端收到后给前端反馈信息。 技术架构 前端 vue + axios + wepack 后端 nodejs + express 前端部分 安装部署 前端安装vue,方式多种,本文使用vue-cli3 + vue ui图形化安装,具体请百度,命令如下: 安装 vue-cli3: npm i @vue/cli -g vue图形化安装: vue ui 安装 axios 用于和后端通讯: npm i axios -s 前端代码 然后我们打开“App.vue”,把代码改成如下: 建立了一个登陆表单,提交按钮点击后向“http://127.0.0.1:3000/login”这个后端地址post表单数据。 < template > < div > < form method = " post " > 账号 : < input type = " text " id = " name " /> < br /> < br /> 密码 : < input type = "

微服务,为什么从前后端分离开始?

女生的网名这么多〃 提交于 2020-01-19 02:32:30
既要低头赶路,又要抬头望天,科技是为人服务的,任何技术背后都有更深层次的考量,在本系列的第一篇文章中我们聊了微服务的本质,它是一种可以加速分工、促进合作的新协作机制。知其然,知其所以然,在第二篇文章中我们剖析了微服务为什么可以加速分工、促进合作,今天我们再接着来聊聊怎样开启微服务架构之旅。 微服务到底改变了什么,你知道吗? 微服务,为什么可以加速分工、促进合作? 1. 从前后端分离开启微服务改造 现在我们对微服务有了更深入的了解,也准备在构建新系统时采用这套新架构了,但它还是有些复杂度的,包括服务注册中心、统一配置中心、微服务网关、接入层网关、服务治理中心、调用链路追踪、分布式事务和分布式调度等众多组件。一口吃成胖子仅仅是一个美好的愿望,从单体式架构直接升级至全微服务架构,需要掌握这套全新的技术栈,对于缺乏前期铺垫的团队来说,学习曲线还是比较陡的,真正遇到的挑战往往超出想象的。 心理学对此有专门的研究,我们探索陌生世界的动力源于兴趣,而兴趣就是好奇心和正向反馈。如果我们刚开始就把目标设定的太高太远,在坚持努力了一段时间之后,还无法达成目标的话,那我们就接收不到正向反馈。久而久之,好奇心就会消磨殆尽,兴趣也就随之消失了。最靠谱的方式就是段带式进阶,将一个非常宏大的目标拆解成多个阶段性目标。在当前能力水平下,最近的阶段性目标只需要我们稍作努力跳跳脚就可以完成的

从0到后端工程师

一个人想着一个人 提交于 2020-01-18 10:02:12
一, 面的是一家上海的创业公司,地址比较偏远,找了半天,过去的时候还发现他们在搬家,心想,创业公司真不容易啊,什么都要自己来。 期间他问到了我的Python基础知识,我答得支支吾吾,各种不确定,还有被问到了后端组件的知识,我也是不了解。框架的知识就也是各种不了解。第一次面试就这样结束了,不过考虑到自己刚学Python不久,只是试试水温,所以还好。 改进: 继续了解Python基础知识; 继续了解后端组件和后端框架; 二 面的是北京某大明星公司,同学进行的内推,它问的Redis的操作,但是自己记不起来了😓,所以自己后来把Redis中所有的操作都背下来了,然后她又问了关于算法的文章,同样的,我只想到暴力解,显然面试官不满意,经过几次的提醒以后还是不会做,于是面试就让我走了。 改进: 背下所有的Redis中的操作; 把剑指Offer过了一遍; 三 面的是北京一家做出行搜索的公司,电话面试,面试过程中提到求二叉树中任意两个结点的距离的问题,当时自己真的是一脸的蒙逼,经过面试官些许提示,题目转化成求LCA,但是自己还是记不起来了,最重要的是这还是自己总结过的知识,于是面试翻着我自己写的博客跟我说。。。面试官还问了动态规划的问题,我并没有了解这个的概念,只是做过这样的题目,所以就说了状态方程相关的,显然面试官并不是想要这个答案。所以面试官就挂了电话。。。 改进: LCA问题都看了一遍;