Django
文章平均质量分 88
Django
dangfulin
这个作者很懒,什么都没留下…
展开
-
简单使用 uwsgi + nginx 在本地 Ubuntu 成功部署 django 项目
一,查看环境与版本1,查看系统环境:$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 21.10Release: 21.10Codename: impish2,查看python版本:$ python3 -VPython 3.9.73,查看django版本:$ python3Python 3.9.7 (default, Sep 10 2021, 14:59:原创 2022-04-10 21:38:13 · 3766 阅读 · 0 评论 -
Django Rest Framework 6:视图集和路由器
一,视图集REST framework 允许将一组相关类视图的逻辑组合在一个类中,称为 ViewSet 视图集。在其他框架中,你可能也会发现概念上类似的实现,比如“Resources”或“Controllers”。ViewSet 可认为是一组类视图的抽象,因此它不提供任何诸如 .get() 或 .post()这类特定的方法处理程序,而是提供诸如 .list() 和 .create() 之类的操作。ViewSet 的方法处理程序只在结束视图时使用.as_view()方法绑定到相应的操作。通常,不需原创 2022-03-20 18:46:29 · 694 阅读 · 0 评论 -
Django Rest Framework 5:关系和超链接API
目前我们的 API 中的关系是用主键表示的。我们将通过使用超链接来提高我们 API 的内部联系。文章目录一,内容协商(一)内容协商概述1,内容协商的基本原则2,为什么会有内容协商3,内容协商机制(1)服务器驱动的内容协商(2)客户端/代理驱动的内容协商(二)REST framework中的内容协商机制1,确定可接受的渲染器2,自定义内容协商3,设置内容协商二,解析器(一)设置解析器(二)API 参考1,JSONParser2,FormParser3,MultiPartParser4,FileUploadP原创 2022-03-18 10:59:19 · 537 阅读 · 0 评论 -
django:分页
一,什么是分页网页是用户与网站进行交互的主要场所,这种交互主要指数据收集与数据展示。从试想一下,为什么我们几乎不在网页中一次性展示请求获得的所有数据呢?如果这个数据量相当小,比如只有几十条,那么一般情况下无需担心,一股脑渲染到页面中就行。但如果这个数据量比较大,比如几百几千几万条,且一旦这种操作比较频繁,显然就会增加服务器负载,主要瓶颈是数据库。这里不谈如何实现高并发,只谈如何以轻量化的方式获取并展示数据。一种有效的方式就是实现分页查询:将一次性获取所有数据的操作,分解为多次查询操作,每次操作只原创 2022-03-14 22:13:44 · 5885 阅读 · 1 评论 -
Django Rest Framework 4:认证、权限和限流
目前,我们的 API 对谁可以编辑或删除没有任何限制。我们希望有更高级的行为,以确保:代码片段始终与创建者相关联。只有通过身份验证的用户可以创建片段。只有代码片段的创建者可以更新或删除它。未经身份验证的请求应具有完全只读权限。其实这些要求也是各种资源普遍应该拥有的权限,要操作这些资源,前提就是能通过认证,甚至还会被一些限流机制所限制。文章目录一,django 中的用户、权限与认证二,进行认证和权限开发的准备工作(一)添加用户(二)用户序列化器(三)关联 Snippet 与用户(四)给 Bro原创 2022-02-22 11:15:46 · 1671 阅读 · 0 评论 -
django:认证系统
文章目录一,权限与授权(一)User 对象1,User 模型2,创建用户(1)创建普通用户(2)创建超级用户3,更改密码4,验证用户5,删除用户(二)Group 对象1,Group 模型2,Group 操作3,User 与 Group(三)Permission 对象1,Permission 模型2,Permission 操作3,分配权限(1)Permission 与 User(2)Permission 与 Group(四)权限机制1,默认权限2,权限缓存二,身份验证(一)验证后端1,默认的验证后端2,内置的原创 2022-02-18 16:23:14 · 1902 阅读 · 0 评论 -
Django Rest Framework中文文档:Serializer relations
这是对DRF官方文档:Serializer relations的翻译,根据个人的理解对内容做了些补充、修改和整理。一,django模型间的关系在我们对数据进行建模时,最重要的一点就是根据功能需求分析出实体及其关系,在实现阶段:一个实体对应一个模型,一个模型就是一张数据表;实体间的关系由模型中的关系字段进行表示,模型间的关系就是数据表间的关系。这种设计理念与关系型数据库的设计理念相符。而关系型数据库的强大之就处在于表示与处理各表之间的关联关系。为此,Django 提供了定义三种最常见的数据库原创 2022-02-07 14:47:19 · 3370 阅读 · 3 评论 -
django:类视图是什么
在同一个页面使用多个表单有两种情况:同一个页面有多个不同的表单同一个页面有多个相同的表单第一种情况还是比较好处理。尽管不同表单有不同的定义内容,但只需要各自实例化就行。针对第二种情况,django提供了一个表单属性prefix设置表单前缀,根据这个前缀区别相同定义的表单:>>> mother = PersonForm(prefix="mother")>>> father = PersonForm(prefix="father")>>>原创 2022-02-02 19:55:23 · 2497 阅读 · 0 评论 -
django:使用表单
一,什么是表单HTML——表单可做为一个简单的入门。二,django与表单(一)django中的表单django中的表单与原生HTML表单有所不同,比如django框架的模板系统能根据表单类自动扩展为HTML表单、配合模板标签实现CSRF防护、表单API提供自带的数据验证功能、甚至能根据模型自动生成对应的表单方便操作模型数据等等。无论是与原生HTML表单的生成与渲染方便性相比,还是与使用原生JavaScript进行表单数据验证等操作相比,django的表单系统更占优势。Handling for原创 2022-01-28 10:12:30 · 3389 阅读 · 3 评论 -
django:信号机制
环境:win 10专业版django 4.0pycharm pro 2021.2.3一,django信号(一)什么是信号通俗来说,信号就是通信双方约定的一种信息通知方式,双方通过信号来确定发生了什么事情,然后决定自己应该做什么:交通管理部门通过红绿灯告知司机与行人当前路口的通行许可。舰队之间通过旗语传递信息。看得出,信号做基本的作用就是一方通知另一方发生了什么。Django有一个信号调度器(signaldispatcher),用来帮助解耦的应用获知框架内任何其他地方发生了操作原创 2022-01-14 21:55:34 · 2444 阅读 · 0 评论 -
django安装xadmin及问题处理
一,安装这里我选择从 GitHub 安装:pip install git+https://github.com/sshwsfc/xadmin.git结果如下:Successfully installed defusedxml-0.7.1 diff-match-patch-20200713 django-crispy-forms-1.11.2 django-formtools-2.3 django-import-export-2.5.0 django-reversion-3.0.9 et-xmlf原创 2021-05-17 00:40:47 · 7941 阅读 · 15 评论 -
使用AJAX与Django通信
这里使用原生JavaScript通过 XMLHttpRequest 对象向django发送Ajax请求提交表单数据,并处理响应。一,HTML页面<!DOCTYPE html><html lang="en"> <head> <title>XHR Post Example</title> </head> <body> <p>Fill in the form below:</p>原创 2021-05-04 19:22:22 · 587 阅读 · 0 评论 -
django模型实践
一,模型名一般建议模型命名时使用单数名词,例如:User, Post, Article。也就是说,名称的最后一个组成部分应该是一个名词,例如:SomeNewShinyItem。当模型的一个单元不包含关于几个对象的信息时,使用单数是正确的。二,关系字段命名对于像oreignKey, OneToOneKey,ManyToMany这样的关系,指定一个名称那是必须的。假设有一个名为Article的模型,其中一个关系是model User的ForeignKey。如果这个字段包含关于文章作者的信息,那么au原创 2021-04-07 00:32:09 · 271 阅读 · 0 评论 -
在自定义的django mixins中获取request信息
一,需求描述需要将当前用户拥有的文章分类信息展示到页面顶部。前提是从django class-based view 中获取当前用户。二,问题描述与使用function view直接获取request信息不同的是,我这里将获取文章分类信息这个通用数据的处理抽象为一个CommonViewMixin,然后供其他class-based view进行继承,代码如下:class CommonViewMixin(object): def get_context_data(self, **kwargs):原创 2021-03-29 12:43:52 · 258 阅读 · 0 评论 -
解决django项目因拆分settings.py导致的The SECRET_KEY setting must not be empty问题
一,问题描述环境:Ubuntu 20.10python 3.8.6django 3.1.7IDE pycharmpro 2020.31,前期操作描述在开发项目时将settings.py文件进行了拆分,结构如下:其中develop.py文件内容如下:from .base import * # NOQAimport os# SECURITY WARNING: don't run with debug turned on in production!DEBUG = True#原创 2021-02-28 18:17:53 · 649 阅读 · 2 评论 -
django:数据库的一些进阶知识点与应用(一)
一,连接池使用第三方程序向数据库发出数据操作请求前,都需要先创建到数据库的连接,这个操作会占用大量资源。所谓的资源消耗,一是对数据库连接数量的消耗;二是对系统内存资源的消耗;三是连接建立过程对时间的消耗,这个角度可以参考这篇博客。django默认会在请求进来的时候创建数据库连接,并在请求完成后关闭连接。从以上三方面的资源消耗来说,较多的连接会明显降低应用响应速度、增加服务器端压力。使用连接池就是一个简单的缓解这种压力的办法。设想一下,如果将创建好的连接放入一个“池pool”中,在需要时取出使用,不原创 2020-10-28 10:55:14 · 503 阅读 · 0 评论 -
django:数据模型Model与简单数据操作
一,数据模型与ORM1,数据模型数据模型,即Model,也就是MVT中的M,用于定义项目中的实体及其关系,每个模型都是一个 Python 的类,这些类继承 django.db.models.Model一个模型类对应一张数据表模型类的每个属性都相当于一个数据库的字段Django 提供了一系列 API 来操作数据表一个例子:class Image(models.Model): user = models.ForeignKey(User,原创 2020-10-27 10:31:29 · 1926 阅读 · 0 评论 -
RESTful Web Services——4: 理解与自定义可浏览的 API
1,Understanding the possibility of rendering text/HTML content2,Using a web browser to work with our web service3,Making HTTP GET requests with the browsable API4,Making HTTP POST requests with the browsable API5,Making HTTP PUT requests with the brows原创 2020-10-23 22:26:33 · 289 阅读 · 0 评论 -
RESTful Web Services——3:使用API类视图实现通用化功能
1.Taking advantage of model serializers2.Understanding accepted and returned content types3.Making unsupported HTTP OPTIONS requests with command-line tools4.Understanding decorators that work as wrappers5.Using decorators to enable different parsers a原创 2020-10-22 08:29:51 · 463 阅读 · 0 评论 -
RESTful Web Services:——2:创建 API 函数视图
1,Creating Django views combined with serializer classes2,Understanding CRUD operations with Django views and the request methods3,Routing URLs to Django views and functions4,Launching Django’s development server5,Making HTTP GET requests that target a原创 2020-10-14 11:58:51 · 316 阅读 · 0 评论 -
RESTful Web Services——1:序列化和反序列化
目前的项目结构:设计RESTful Web服务以与简单的SQLite数据库进行交互,并使用玩具(toys,项目app)执行CRUD操作。将定义Web服务的需求,并了解每种HTTP方法和不同范围所执行的任务。将创建一个模型来表示和持久化toys,并在Django中执行迁移以在数据库中创建所需的表。 我们将分析这些表,并学习如何使用Django REST框架和相反的过程将玩具实例序列化为JSON表示形式。1,Defining the requirements for our first RESTful原创 2020-09-22 02:38:57 · 357 阅读 · 0 评论 -
django:中间件
一,什么是中间件中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。二,中间件的作用每个中间件组件负责做一些特定的功能。例如,Django 包含一个中间件组件 AuthenticationMiddleware,它使用会话将用户与请求关联起来。既然中间件是一种钩子框架,那就好理解了:会在系统处于某种状态时自动调用。而这种系统状态就是django接收到请求request时的状态。中间件作用就是用于处理用户请求、产生响应内容。原创 2020-09-21 22:56:34 · 414 阅读 · 1 评论 -
django:消息框架源码分析与简单应用
一,消息框架The messages framework在Web应用程序中,需要在处理表单或某些其他类型的用户输入后向用户显示一次性通知消息(也称为“即时消息”),通常很常见。为此,Django为匿名用户和经过身份验证的用户提供了基于cookie和session的消息传递的全面支持。 消息框架可以将消息临时存储在一个请求中,并检索它们以在后续请求(通常是下一个请求)中显示。 每条消息都标记有确定其优先级的特定级别。这个消息框架可供直接调用,允许设置功能引擎、消息类型与消息内容。二,源码解读1,启用原创 2020-09-19 13:19:18 · 547 阅读 · 0 评论 -
django:跨域访问及CSRF防护
一,什么是跨域访问?二,django设置跨域访问三,djangoCSRF防护原创 2020-09-17 17:34:45 · 749 阅读 · 0 评论 -
django:缓存
一,缓存动态网站最基本的权衡就是,它们是动态的。每次用户请求页面时,Web服务器都会进行各种计算——从数据库查询到模板呈现再到业务逻辑——以创建站点访问者所看到的页面。从处理开销的角度来看,这比标准的“读取文件离开文件系统”服务器安排要昂贵得多。对于大多数Web应用程序来说,这种开销并不是什么大问题。大多数网络应用程序不是washingtonpost.com或slashdot.org;它们只是一些流量一般的中小型网站。但对于中高流量的网站来说,尽可能减少开销是必要的。这就是缓存的用武之地。缓存是为原创 2020-09-16 16:30:08 · 3100 阅读 · 2 评论 -
django:一个简单的Ajax无刷计算器
准备知识:jQuery入门。一,路由MyDjango/urls.py:from django.urls import path, includefrom django.contrib import adminurlpatterns = [ path('admin/', admin.site.urls), path('', include(('user.urls', 'user'), namespace='user')),]user/urls.py:from django.原创 2020-09-07 23:17:25 · 267 阅读 · 0 评论 -
一个简单的前后端分离demo
功能类似于:一,安装及简单配置前端vue开发环境与项目1,下载并安装node.jsNode.js。C:\Users\PC>node -vv12.18.32,安装淘宝镜像C:\Users\PC>npm install -g cnpm --registry=HTTPS://registry.npm.taobao.orgnpm WARN deprecated request@2.88.2: request has been deprecated, see https://githu原创 2020-09-05 09:46:24 · 1219 阅读 · 0 评论 -
django:分页功能源码与应用实现
分页功能作为网页中的必要功能之一,django提供的内置Paginator实现了如下功能:当前页面是否存在前后页。每页的数据量。访问的页数是否超范围。一,django分页源码1,分页由Paginator类实现,源码如下:class Paginator: def __init__(self, object_list, per_page, orphans=0, allow_empty_first_page=True): self.obj原创 2020-08-27 16:24:19 · 412 阅读 · 0 评论 -
django:session会话控制
当用户第一次访问某网站时,网站服务器就在内存中开辟一块空间来创建session对象,用于在“无状态”的HTTP的常会话中存储用户信息。能使用户在同一浏览器的不同页面间跳转时保持信息一致。参考。session会在失效或过期时被清理。django默认开启session,由settings.py中MIDDLEWARE的’django.contrib.sessions.middleware.SessionMiddleware’进行状态判断,并根据判断结果调用settings.py中INSTALLED_APPS的’原创 2020-08-24 22:38:43 · 1460 阅读 · 0 评论 -
cookie反爬虫应用与绕过原理
一,认识cookie1,cookie网络爬虫基础知识:HTTP和HTTPS、cookie和session。2,django中对cookie的操作1,获取cookie内容:request.COOKIES.get['uuid']request.COOKIES['uuid']2,向响应内容中删除cookie:return HttpResponse('hello world!')response.delete_cookie('key')return response3,向响应内容中添加co原创 2020-08-24 22:36:24 · 1741 阅读 · 0 评论 -
django:在普通django项目中设置网页访问权限
一,准备知识可以参考django:用户、用户组及权限设置,这篇文章介绍了用户权限相关的一些知识,先根据改内容了解用户权限的设置过程。二,需求1,注册实现用户注册功能。为了快速实现总体功能,就简化地在注册时赋予页面访问权限。2,登录对输入的登陆信息进行验证,成功则进入用户中心,否则要重新输入信息。3,用户中心在执行进入VIP网页操作之前,先验证该用户是否有权限。用户中心进行极简的内容展示。4,注销从用户中心退出登录。三,功能实现1,...原创 2020-08-24 16:28:35 · 4044 阅读 · 0 评论 -
用Django Rest Framework模拟豆瓣API
一,创建开发环境1,创建项目项目名book,应用名users:django-admin startproject bookdjango-admin startapp users2,安装DRFpip install djangorestframework markdown django-filter3,配置settings.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'dja原创 2020-08-24 02:10:22 · 302 阅读 · 0 评论 -
Django Rest Framework 3:创建类视图
一,基于类的视图REST framework 提供了一个 APIView 类,它是 Django 的 View 类的子类。基于类的视图必须继承APIView类。传递给处理程序方法的请求将是 REST framework 的 Request 实例,而不是 Django 的 HttpRequest 实例。处理程序方法可能会返回 REST framework 的 Response,而不是 Django 的 HttpResponse。该视图将管理内容协商并在响应中设置正确的渲染器。任何 APIExcept原创 2020-08-23 16:31:49 · 431 阅读 · 0 评论 -
Django Rest Framework 2:创建完整的函数视图
一,请求对象RequestREST framework 引入了一个扩展自常规 HttpRequest 对象的 Request 对象,增加了对 REST framework 灵活的请求解析和请求认证的支持。Request 对象的核心功能是 request.data 属性,它与 request.POST 类似,但对于使用 Web API 更加有用。request.POST 只处理表单数据。 只适用于 ‘POST’ 方法。request.data 处理任意数据。 适用于 ‘POST’,‘PUT’ 和 ‘原创 2020-08-23 10:17:35 · 477 阅读 · 0 评论 -
Django Rest Framework 1:序列化与反序列化
这个案例来自于官网django-rest-framework.org一,搭建开发环境1,创建django项目tutorialdjango-admin.py startproject tutorial2,创建应用snippetpython manage.py startapp snippet3,安装DRFpip install djangorestframeworkpip install pygments # 用于代码高亮4,配置settings.pyINSTALLED_APPS原创 2020-08-22 23:23:01 · 1737 阅读 · 0 评论 -
django:用户、用户组及权限设置
一,django中超级用户与普通用户的本质区别首先要明确的是,Django的身份验证框架中只存在一个用户类,也就是说,“超级用户”或“普通用户”只是设置了特殊属性的用户对象,而不是用户对象的不同类别。1,当使用命令python manage.py createsuperuser后打开数据库中的用户表user_myuser,is_superuser、is_staff和is_active都被置为1。如下图:is_superuser:Boolean. Designates that this user原创 2020-08-21 23:03:49 · 12359 阅读 · 2 评论 -
django:使用Jinja2模板引擎
一,什么是jinja2模板引擎jinja官网:Jinja is a modern and designer-friendly templating language for Python,modelled after Django’s templates. It is fast, widely used and securewith the optional sandboxed template execution environment:特点:相对于DTL(官方文档,也可以参考这篇文章}而言原创 2020-08-15 11:42:10 · 563 阅读 · 0 评论 -
django:视图类之RedirectView、TemplateView、ListView、DetailView的源码与示例
一,为什么需要类视图(Class Base Views)面对功能和业务逻辑具有相同过程的需求时, 使用视图函数来完成的话,可能需要编写大量重复代码,而且视图函数过多时,不方便后期修护,所以django贴心地提供了视图类来封装一些列相同逻辑,开发者只需要继承django提供的父类,就能使用更加完善、统一的功能。二,django提供的视图类1,数据显示视图用于将表单或模型的数据展示到网页中。1,重定向视图RedirectView源码:class RedirectView(View): ""原创 2020-08-13 18:16:39 · 1084 阅读 · 0 评论 -
django:使用邮箱获取验证码
验证码用于判断当前用户与待验证用户是否i配,在注册、密码修改等需要身份验证的场景中有重要作用。简单的验证方式有手机接受验证码和邮箱接收验证码。这里主要将邮箱验证。1,开启第三方邮件发送服务2,邮箱配置3,模板文件4,视图函数5,扩展内容...原创 2020-08-12 22:39:14 · 1826 阅读 · 0 评论 -
django:Django Rest Framework——序列化
记录一次DRF复习过程。需要先了解API,即应用编程接口。开发者角度:网站开发人员开发的允许其他软件调用的数据接口,本质就是封装好一系列操作来返回某些数据或提供某些功能的函数。使用者角度:使用者通过GET或POST等方法进行访问API,就能获取所需的JSON或字符串格式的数据或者所需的服务,就不用重复造轮子。(参考文章)普通的django项目是基于MVT模式的,而django的前后端分离项目基于MVVM模式,前后端耦合度进一步降低,这就需要用到API了,而且是遵循RESTful规范(参考文章)原创 2020-07-28 17:02:08 · 704 阅读 · 0 评论