web开发
枫叶
这个作者很懒,什么都没留下…
展开
-
redis那么快的原因
1.纯内存操作,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在 IO 上,所以读取速度快。2.整个 Redis 就是一个全局 哈希表,他的时间复杂度是 O(1),而且为了防止哈希冲突导致链表过长,Redis 会执行 rehash 操作,扩充 哈希桶数量,减少哈希冲突。并且防止一次性 重新映射数据过大导致线程阻塞,采用 渐进式 rehash。巧妙的将一次性拷贝分摊到多次请求过程后总,避免阻塞。3.Redis 使用的是非阻塞 IO:IO 多路复用,使用了单线程来轮询描述符,将数据库的开、关原创 2021-04-13 10:57:30 · 791 阅读 · 0 评论 -
Nginx的负载均衡方式
负载均衡的几种策略转载 2021-04-12 15:09:57 · 89 阅读 · 0 评论 -
rest-framework框架的基本组件
序列化创建一个序列化类简单使用开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式。我们可以通过声明与Django forms非常相似的序列化器(serializers)来实现。models部分:from django.db import models# Create your models here.class Book(models.Model): title=models.CharField(ma原创 2020-08-03 19:26:24 · 234 阅读 · 0 评论 -
常用状态码及请求方式
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)204 NO CONTENT - [DELETE]:用户删除数据成功。400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。401 Unau原创 2020-07-04 16:28:59 · 185 阅读 · 0 评论 -
Django开发学习之用户认证组件(auth)
用户认证auth模块from django.contrib import authdjango.contrib.auth中提供了许多方法,这里主要介绍其中的三个:1.1 、authenticate()提供了用户认证,即验证用户名以及密码是否正确,一般需要username password两个关键字参数如果认证信息有效,会返回一个 User 对象。authenticate()会在User 对象上设置一个属性标识那种认证后端认证了该用户,且该信息在后面的登录过程中是需要的。当我们试图登陆一个原创 2020-06-20 16:02:55 · 244 阅读 · 0 评论 -
Django开发学习之models和forms的转换
三个关键字ChoiceFieldModelChoiceField(ChoiceField) ----select(单选)MultiModelChoiceField(ModelChoiceField) ----select(多选)class Book(model.Model): title = models.CharField(max_length=32) price = models.IntegerField() publish = models.Foreignkey('Publish')原创 2020-06-18 21:58:13 · 302 阅读 · 0 评论 -
Django开发学习之forms组件
forms组件校验字段功能针对一个实例:注册用户讲解。模型:models.pyclass UserInfo(models.Model): name=models.CharField(max_length=32) pwd=models.CharField(max_length=32) email=models.EmailField() tel=models.CharField(max_length=32)模板: register.html:<!DOCTYPE原创 2020-06-18 19:51:10 · 155 阅读 · 0 评论 -
Django开发学习之Session、Cookie
会话跟踪技术1.什么是会话跟踪技术我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。在一个会话的多个请求中共享数据,这就是原创 2020-06-16 14:14:49 · 154 阅读 · 0 评论 -
Django开发学习之Ajax(二)
Ajax准备知识:jsonAjax准备知识:json什么是json?定义:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。讲json对象,不得不提到JS对象:合格的json对象:原创 2020-06-14 19:51:36 · 249 阅读 · 0 评论 -
Django开发学习之Ajax(一)
AjaxAjax简介AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点原创 2020-06-14 19:26:30 · 156 阅读 · 0 评论 -
Django开发学习之Django-MTV
MTV模型Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的时候调用Model和Template 此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和TemplateDjango基本命令1、下载Django:pip3 install django2、原创 2020-06-14 17:22:03 · 362 阅读 · 0 评论 -
Django开发之Admin定制
admin的定制在admin.py中只需要讲Mode中的某个类注册,即可在Admin中实现增删改查的功能,如:admin.site.register(models.UserInfo)但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:方式一: class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',) admin.site.register(mod原创 2020-06-14 15:01:09 · 417 阅读 · 0 评论 -
Django开发学习之中间件
中间件中间件的概念:中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎实用,用不好会影响到性能。Django的中间件的定义:Middleware is a framework of hooks into Django’s request/response processing. <br>It’s a light, low-level “plugin” system for原创 2020-06-14 14:20:07 · 119 阅读 · 0 评论 -
Django学习之名称空间(namespace)
命名空间(英语:Namespace)是表示标识符的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回我们在开发项目时,会经常使用name属性反解出URL,当不小心在不同的app的urls中定义相同的name时,可能会导致URL反解错误,为了避原创 2020-06-14 14:04:40 · 417 阅读 · 0 评论 -
Django开发学习之分页器
Django的分页器view.pyfrom django.shortcuts import render,HttpResponse# Create your views here.from app01.models import *from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerdef index(request): ''' 批量导入数据: Booklist=[]原创 2020-06-13 10:18:06 · 142 阅读 · 0 评论 -
Django开发学习之URL的反向解析
在使用Django 项目时,一个常见的需求是获得URL 的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。人们强烈希望不要硬编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关的专门的URL 生成机制,因为这样容易导致一定程度上产生过期的URL。换句话讲,需要的是一个DRY 机制。除了其它有点,它还允许设计的URL 可以自动更新而不用遍历项目的源代码来搜索并替换过期的URL。获取一个URL 最开始想到的信息是处理原创 2020-06-12 16:23:42 · 140 阅读 · 0 评论 -
Django开发之Admin源码学习
admin 源码:1.注册 admin.py admin.site.register(Book, BookConfig) 源码: class AdminSite(): def __init__(self, name='admin'): self._registry = {} def register(self, model, admin_class): if原创 2020-06-11 09:23:45 · 386 阅读 · 0 评论 -
Django开发学习之ORM操作
ORM对数据库进行操作之增删改查 # 增 models.UserInfo.objects.create( username=u, sex=s, email=e, year=y, ) ''' create传值的方式二,用字典的形式 models.UserInfo.objects.create( **{ 'username':u,原创 2020-06-11 09:21:47 · 139 阅读 · 0 评论 -
Django开发学习之单例模式
一个类只允许实例一个对象,该模式的主要目的是确保某一个类只有一个实例存在实现方式1: class Singleton(object): _instance = None def __new__(cls, *args, **kw): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls, *args, **kw) return cls._instance class My原创 2020-06-11 09:19:25 · 890 阅读 · 0 评论 -
Django开发学习之实现跨域请求
实现跨域请求最简便和最常用的方法在视图函数中对http响应的数据加上‘Access-Control-Allow-Origin’的值,这个值一般为你的请求路由地址。例如: def service(request): info = {'name':'egon','age':25,'price':200} response= HttpResponse(json.dumps(info)) response['Access-Control-Allow-Origin'] = 'http://1原创 2020-06-11 09:15:57 · 130 阅读 · 0 评论 -
ajax请求成功之后控制页面刷新一次
在success:function(arg){}中加入如下代码:window.location.reload();setTimeout(refresh , 5000);原创 2020-05-13 14:18:05 · 2250 阅读 · 0 评论