05 2021 档案

摘要:安装redis 1.使用Homebrew安装Redis brew install redis 执行上述命令后出现以下内容,则成功安装 Download failed: https://mirrors.ustc.edu.cn/homebrew-bottles/bottles/redis-6.0.9.b 阅读全文
posted @ 2021-05-31 11:17 Silent丿丶黑羽 阅读(94) 评论(0) 推荐(0)
摘要:前言 django框架的日志通过python内置的logging模块实现的,既可以记录自定义的一些信息描述,也可以记录系统运行中的一些对象数据,还可以记录包括堆栈跟踪、错误代码之类的详细信息。 logging主要由4部分组成:Loggers、Handlers、Filters和Formatters s 阅读全文
posted @ 2021-05-30 16:43 Silent丿丶黑羽 阅读(648) 评论(0) 推荐(0)
摘要:什么是Django中间件 中间件(Middleware)是一个用来处理Django的请求(Request)和响应(Response)的框架级别的钩子,它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。 当用户在网站中进行某个操作时,这个过程是用户向网站发送HTTP请求(R 阅读全文
posted @ 2021-05-28 11:10 Silent丿丶黑羽 阅读(295) 评论(0) 推荐(0)
摘要:Django请求生命周期分析 1.客户端发送请求 在浏览器输入url地址,例如www.baidu.com,浏览器会自动补全协议(http),变为http://www.baidu.com,现在部分网站都实现了HSTS机制,服务器自动从http协议重定向到https协议 在网页中点击超链接或javasc 阅读全文
posted @ 2021-05-27 11:19 Silent丿丶黑羽 阅读(687) 评论(0) 推荐(0)
摘要:前言 session: session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,session是一个思路、一个概念、一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现。虽然实现不一样,但是他们的目的都是服务器为 阅读全文
posted @ 2021-05-26 10:46 Silent丿丶黑羽 阅读(1504) 评论(0) 推荐(0)
摘要:前言 cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就 阅读全文
posted @ 2021-05-25 11:37 Silent丿丶黑羽 阅读(456) 评论(0) 推荐(1)
摘要:前言 虽然DTL给我们内置了许多好用的过滤器。但是有些时候还是不能满足我们的需求。因此Django给我们提供了一个接口,可以让我们自定义过滤器,实现自己的需求。 自定义过滤器 首先在某个app中,创建一个python包,叫做templatetags,注意,这个包的名字必须为templatetags, 阅读全文
posted @ 2021-05-25 09:13 Silent丿丶黑羽 阅读(160) 评论(0) 推荐(0)
摘要:模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。而在模版中,则是通过过滤器来实现的。过滤器使用的是|来使用。 add 将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和参数转换成整形然后进行相加。如果转换成整形过程中失败了, 阅读全文
posted @ 2021-05-24 11:47 Silent丿丶黑羽 阅读(302) 评论(0) 推荐(1)
摘要:常用的模板标签 if标签 if标签相当于Python中的if语句,有elif和else相对应,但是所有的标签都需要用标签符号({%%})进行包裹。if标签中可以使用==、!=、<、<=、>、>=、in、not in、is、is not等判断运算符。示例代码如下: {% if "张三" in pers 阅读全文
posted @ 2021-05-24 10:33 Silent丿丶黑羽 阅读(184) 评论(0) 推荐(0)
摘要:变量 模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。变量需要通过视图函数渲染,视图函数在使用render或者render_to_string的时候可以传 阅读全文
posted @ 2021-05-23 16:16 Silent丿丶黑羽 阅读(118) 评论(0) 推荐(0)
摘要:前言 目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达 阅读全文
posted @ 2021-05-23 13:45 Silent丿丶黑羽 阅读(134) 评论(0) 推荐(0)
摘要:类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。 View django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他。如果我们写自己的类视图,也可以继承自他。然后再根据当前请求的m 阅读全文
posted @ 2021-05-23 09:16 Silent丿丶黑羽 阅读(188) 评论(0) 推荐(0)
摘要:HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回HttpResponseBase或者他的子类的对象。而HttpR 阅读全文
posted @ 2021-05-21 16:45 Silent丿丶黑羽 阅读(369) 评论(0) 推荐(0)
摘要:Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数。也就是我们经常看到的request参数。在这个对象上我们可以找到客户端上传上来的所有信息。这个对象的完整路径是django.core.handle 阅读全文
posted @ 2021-05-21 13:47 Silent丿丶黑羽 阅读(201) 评论(0) 推荐(0)
摘要:重定向 重定向分为永久重定向和临时重定向,在页面上体现的操作就是浏览器会从一个页面自动跳转到另外一个页面。比如用户访问了一个需要权限的页面,但是该用户当前并没有登录,因此我们应该给他重定向到登录页面。 永久重定向:http的状态码是301,多用于旧网址被废弃了要转到一个新的网址确保用户的访问,最经典 阅读全文
posted @ 2021-05-21 11:09 Silent丿丶黑羽 阅读(2690) 评论(2) 推荐(1)
摘要:前言 有时候,我们想要限制访问的请求方法,比如我们希望用户只能通过get方式请求,post不允许,那么我们可以采用装饰器的方式,django已经为我们提供了内置的装饰器 限制请求装饰器 Django内置的视图装饰器可以给视图提供一些限制。比如这个视图只能通过GET的method访问等。 django 阅读全文
posted @ 2021-05-21 10:24 Silent丿丶黑羽 阅读(294) 评论(0) 推荐(0)
摘要:前言 Django在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式 extra:结果集修改器,一种提供额外查询参数的机制。 raw:执行原始SQL并返回模型实例对象。 exe 阅读全文
posted @ 2021-05-20 15:10 Silent丿丶黑羽 阅读(517) 评论(0) 推荐(1)
摘要:前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本。映射到数据库中。创建新的表或者修改表的结构。 问题1:migrate怎么判断哪些迁移脚本需要执行? 它会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本 阅读全文
posted @ 2021-05-20 12:40 Silent丿丶黑羽 阅读(923) 评论(0) 推荐(1)
摘要:迁移命令 makemigrations:将模型生成迁移脚本。模型所在的app,必须放在settings.py中的INSTALLED_APPS中。这个命令有以下几个常用选项: app_label:后面可以跟一个或者多个app,那么就只会针对这几个app生成迁移脚本。如果没有任何的app_label,那 阅读全文
posted @ 2021-05-20 09:46 Silent丿丶黑羽 阅读(189) 评论(0) 推荐(0)
摘要:前言 我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作。其实模型名字.objects是一个django.db.models.manager.Manager对象,而Manager这个类是一个“空壳”的类,他本身是没有任何的属性和方法的。他的方法全部都是通过Python动态添加的 阅读全文
posted @ 2021-05-19 21:29 Silent丿丶黑羽 阅读(283) 评论(0) 推荐(0)
摘要:前言 orm模型中的聚合函数跟MySQL中的聚合函数作用是一致的,也有像Sum、Avg、Count、Max、Min,接下来我们逐个介绍 聚合函数 所有的聚合函数都是放在django.db.models下面。并且聚合函数不能够单独的执行,聚合函数是通过aggregate方法来实现的。在说明聚合函数的用 阅读全文
posted @ 2021-05-19 10:43 Silent丿丶黑羽 阅读(449) 评论(0) 推荐(1)
摘要:前言 查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都是使用field+__+condition的方式来使用的。以下将那些常用的查询条件来一一解释。 查询 阅读全文
posted @ 2021-05-18 13:49 Silent丿丶黑羽 阅读(635) 评论(0) 推荐(0)
摘要:前言 在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。 添加一个模型到数据库中: 添加模型到数据库中。首先需要创建一个模型。创建模型的方式很简单,就跟创建普通的Python对象是一摸一样的。在创建完模型之后,需要调用 阅读全文
posted @ 2021-05-17 15:43 Silent丿丶黑羽 阅读(197) 评论(0) 推荐(0)
摘要:外键删除操作 如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下: CASCADE:级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了外键的那条数据,那么就不能删除 阅读全文
posted @ 2021-05-17 15:19 Silent丿丶黑羽 阅读(368) 评论(1) 推荐(0)
摘要:模型中常用字段 字段 说明 AutoField 一般不需要使用这个类型,自增长类型,数据表的字段类型为整数,长度为11位 BigAutoField 自增长类型,数据表的字段类型为bigint,长度为20位 BooleanField 在模型层面接收的是True/False。在数据库层面是tinyint 阅读全文
posted @ 2021-05-16 14:28 Silent丿丶黑羽 阅读(242) 评论(0) 推荐(0)
摘要:前言 我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间,但是当我们做的网站只面向国内用户,或者只是提供内部平台使用,我们希望存储在数据库中的时间就是本地时间(东八区的时间),那么django也是可以完成这样的需求的 await时间 阅读全文
posted @ 2021-05-16 13:59 Silent丿丶黑羽 阅读(358) 评论(0) 推荐(0)
摘要:报错情况 Django使用makemigrations做数据迁移的时候报如下错误 File "/Users/jkc/.virtualenvs/django_env/lib/python3.7/site-packages/django/db/backends/mysql/operations.py", 阅读全文
posted @ 2021-05-16 09:51 Silent丿丶黑羽 阅读(1445) 评论(0) 推荐(0)
摘要:mac系统安装mysqlclient时,会报错OSError: mysql_config not found 解决办法 在项目路径下输入以下内容 PATH="$PATH":/usr/local/mysql/bin/ mysql_config 最后输入pip3 install mysqlclient即 阅读全文
posted @ 2021-05-16 09:40 Silent丿丶黑羽 阅读(143) 评论(0) 推荐(0)
摘要:前言 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: 1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。 2.很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些 阅读全文
posted @ 2021-05-15 14:10 Silent丿丶黑羽 阅读(179) 评论(0) 推荐(0)
摘要:前言 当我们访问网页的时候,后台返回列表中有n条数据,此时我们会使用分页,比如一页只展示10条,但是我们访问第一页的时候大多数情况下,都会给url一个默认值,访问的时候直接展示第一页数据 案例 我们的需求:在访问127.0.0.1/books/直接展示第一页数据,在访问127.0.0.1/books 阅读全文
posted @ 2021-05-15 10:50 Silent丿丶黑羽 阅读(243) 评论(0) 推荐(0)
摘要:reverse函数 reverse函数的作用是用来进行URL反转的,接下来我们介绍reverse函数的几种用法 之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url。这时候就可以通过reverse来实现。示例代码如下: reverse("list") > /lis 阅读全文
posted @ 2021-05-14 17:50 Silent丿丶黑羽 阅读(655) 评论(0) 推荐(0)
摘要:前言 为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例 案例 我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件,创建成功后项目代码结构如下: 然后写入如下代码 # url_demo.urls.py urlpat 阅读全文
posted @ 2021-05-14 15:04 Silent丿丶黑羽 阅读(211) 评论(0) 推荐(0)
摘要:自定义路径转换器 有时候上面的内置的url转换器并不能满足我们的需求,因此django给我们提供了一个接口可以让我们自己定义自己的url转换器 django内置的路径转换器源码解析 在我们自定义路由转换器之前,我们先查看一下django内置的那些路由转换器怎么写的,源码路径from django.u 阅读全文
posted @ 2021-05-13 17:35 Silent丿丶黑羽 阅读(526) 评论(0) 推荐(0)
摘要:前言 Django的配置文件settings.py用于配置整个网站的环境和功能,核心配置必须有项目路径、密钥配置、域名访问权限、App列表、中间件、资源文件、模板配置、数据库的连接方式 基本配置信息 import os # 项目路径 # Build paths inside the project 阅读全文
posted @ 2021-05-12 14:42 Silent丿丶黑羽 阅读(593) 评论(0) 推荐(1)
摘要:前言 我们掌握了如何在命令提示符或PyCharm下创建Django项目和项目应用,无论是创建项目还是创建项目应用,都需要输入相关的指令才能得以实现,这些都是Django内置的操作指令。 在PyCharm的Terminal中输入指令python manage.py help并按回车键,即可看到相关的指 阅读全文
posted @ 2021-05-11 22:17 Silent丿丶黑羽 阅读(241) 评论(0) 推荐(0)
摘要:创建项目 我们创建django项目有两种方式,命令行方式和使用pycharm工具创建,本文就介绍常用的pycharm工具创建 首先点击django,输入项目的名称,选择创建好的虚拟环境,最后点击create 创建成功后,我们查看下项目的目录结构如下: djangoProject项目里包含django 阅读全文
posted @ 2021-05-11 21:54 Silent丿丶黑羽 阅读(811) 评论(0) 推荐(0)
摘要:python虚拟环境 虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。 为什么 阅读全文
posted @ 2021-05-11 16:54 Silent丿丶黑羽 阅读(196) 评论(0) 推荐(0)
摘要:前言 Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。Django采用了MTV 阅读全文
posted @ 2021-05-11 14:40 Silent丿丶黑羽 阅读(358) 评论(2) 推荐(2)