Django
文章平均质量分 51
Erudite_x
处女座,酷爱Django
展开
-
Django项目部署,runserver 与 uWSGI 的区别
Django本身提供了runserver,为什么不能用来部署?这时需要聊聊 runserver 与 uWSGI 的区别了:runserver 是调试 Django 时经常用到的运行方式,它使用 Django 自带的 WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程。uWSGI 是一个 Web 服务器,它实现了WSGl,uWSGl,HTTP等协议。uWSGI 是一种通信协议,而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的 Web 服务器原创 2021-06-06 14:09:05 · 968 阅读 · 0 评论 -
Django处理浏览器的请求的流程
Django处理浏览器的请求的流程1.django处理浏览器的请求的流程步骤:请求发送到了wsgi,wsgi 封装请求的相关数据(request)django去匹配路径,根据路径判断要执行哪个函数执行函数,函数中处理具体的业务逻辑函数返回响应,django按照 HTTP 协议的响应的格式进行返回2.发请求的途径:在浏览器的地址栏中输入地址回车 —> geta标签 —> get请求form表单 —> post/get请求3.get和post请求的区别get 是原创 2021-05-27 19:21:20 · 649 阅读 · 0 评论 -
Django——form表单
表单是搜集用户数据信息的各种表单元素的集合,其作用是实现网页上的数据交互,比如用户在网站输入数据信息,然后提交到网站服务器端进行处理(如数据录入和用户登录注册等)。网页表单是Web开发的一项基本功能,Django的表单功能由 Form 类实现,主要外为两种:diango.forms.Form 和 django.forms.Modellorm,前者是一个基础的表单功能,后者是在前者的基础上结合模型所生成的数据表单。接下来带各位了解一下表单传统的表单生成方式是在模板文件中编写 HTML 代码实现,在 H原创 2021-05-09 20:42:58 · 287 阅读 · 0 评论 -
Django中常用的正则表达式
在Django中,正则表达式所捕获的参数都是字符串类型的。如下所示:(不是很全,后期本人遇到再加)正则表达式意义\d{4}\d:表示匹配数字 {4}:表示只匹配4位数字\w\w:表示匹配 字母 或 数字 或 下划线 或 汉字([0-9]{4})():表示分组 url地址上捕获的参数,会按照位置传参方式,传递给视图函数++:表示1个或多个??:表示0个或1个**:表示0个或多个.. :表示匹配除换行符之外的标识(?P[0-9]原创 2021-05-08 21:12:48 · 1041 阅读 · 0 评论 -
Django中装饰器的使用方法
装饰器的作用(简而言之):让其他函数在不需要做任何代码变动的前提下增加额外的功能FBV加装饰器例:以 统计时间的装饰器 为例def timer(func): def inner(*args, **kwargs): start = time.time() ret = func(*args, **kwargs) print('执行的时间是:{}'.format(time.time()-start)) return ret re原创 2021-05-06 21:06:06 · 350 阅读 · 0 评论 -
Django中自定义过滤器步骤
过滤器主要是对上下文的内容进行操作处理。在实际开发中,如果内置过滤器的功能不太适合开发需求,我们可以自定义过滤器来解决问题。下面本人就Django自定义过滤器的步骤与大家分享一下:在Django应用目录下创建——templatetags 包;(注意:该包的名字不能写错)创建一个py文件,文件名自定义(例:mytags.py);在py文件开头写入(这是固定格式,不能写错):from django.template import Libraryregister = Library()写原创 2021-05-04 21:32:18 · 147 阅读 · 0 评论 -
Django模板引擎
Django作为Web框架,需要一种很便利的方法动态地生成 HTML 网页,因此有了模板这个概念。模板包含所需 HTML 的部分代码以及一些特殊语法,特殊语法用于描述如何将视图传递的数据动态插入HTML网页中。Django模板引擎Django 内置的模板引擎包含模板上下文(亦可称为模板变量)、标签 和 过滤器,各个功能说明如下:模板上下文是以变量的形式写人模板文件里画,变量值由视图函数或视图类传递所得。标签是对模板上下文进行控制输出,比如模板上下文的判断和循环控制等。模板继承隶属于标签,它是将每原创 2021-04-28 15:02:57 · 884 阅读 · 0 评论 -
Django中的CBV视图
Web 开发是一项无聊而且单调的工作,特别是在视图功能编写方面更为显著。为了减少这种痛苦,Django植入了视图类这一功能,该功能封装了视图开发常用的代码,无须编写大量代码即可快速完成数据视图的开发,这种以类的形式实现响应与请求处理称为 CBV(Class Base Views)。视图类是通过定义和声明类的形式实现的,根据用途划分3部分:数据显示视图、数据操作视图和日期筛选视图。1、数据显示视图数据显示视图是将后台的数据展示在网页上,数据主要来自模型,一共定义了4个视图类,分别是RedirectVi原创 2021-04-25 15:44:42 · 219 阅读 · 0 评论 -
Django利用Cookie实现反爬虫
我们知道,Diango 接收的 HTTP 请求信息里带有 Cookie 信息。Cookie的作用是为了识别当前用户的身份,通过以下例子来说明Cookie的作用。例:浏览器 向 服务器(Diango)发送请求,服务器做出响应之后,二者使会断开连接(会话结束),下次用户再来请求服务器,服务器没有办法识别此用户是谁,比如用户登录功能,如果没有 Cookie 机制支持,那么只能通过查询数据库实现,并且每次刷新页面都要重新操作一次用户登录才可以识别用户,这会给开发人员带来大量的冗余工作,简单的用户登录功能会给服务原创 2021-04-23 19:06:26 · 252 阅读 · 0 评论 -
Django中 render() 函数的使用方法
render() 函数在讲 render() 函数之前,我们在 Django 项目 index 文件夹的 urls.py 和 views.py 中编写如下功能代码:(不难,望读者细心阅之)# index的 urls.pyfrom django.urls import pathform . import viewsurlpatterns = [ # 定义首页的路由 path(' ', views.index, name='index'),] # index的views.原创 2021-04-21 19:12:51 · 2362 阅读 · 4 评论 -
Django内置的响应类
在介绍 Django 内置的响应类之前,读者需要了解 HTTP 的响应方式。首先: 网站的运行原理是遵从 HTTP 协议,分为 HTTP 请求和 HTTP 响应。HTTP 响应方式也称为 HTTP 状态码,分为5中状态:消息、成功、重定向、请求错误和服务器错误。若以使用频率划分,则 HTTTP 状态码可分为:成功、重定向和异常响应(请求错误和服务器错误)。其次: 在 Django 中,视图函数是通过 return 方式返回响应内容,然后生成相应的网页内容呈现在浏览器上。return 是 Python 的原创 2021-04-19 21:15:58 · 128 阅读 · 0 评论 -
Django中的中间件
中间件是一个用来处理Django的请求和响应的框架级别的钩子,它是一个轻量级、低级别的插件系统,用于在全局范围内改变Django的输入和输出。当用户在网站中进某个操作时,这个过程是用户向网站发送HTTP请求(Requesst);而网站会根据用户的操作返回相关的网页内容,这个过程称为响应处理(Response)。从请求到响应的过程中,当Django接收到用户请求时,首先经过中间件处理请求信息,执行相关的处理,然后将处理结果返回给用户。中间件的执行流程如下图所示:从上图可以清晰的看到,中间件的作用是处理用原创 2021-04-15 18:40:38 · 142 阅读 · 0 评论 -
Django与MySQL数据库实现数据连接
数据库配置是选择项目所使用的数据库类型,不同的数据库需要设置不同的数据库引擎,数据库引擎用于实现项目于数据库的连接,Django提供4种数据库引擎: 'django.db.backends.postgresql' 'django.db.backends.mysql' 'django.db.backends.sqlite3' 'django.db.backends.oracle'Django在创建项目时,默认采用的是 Sqlite3 数据库,是一个轻型的数据库,Sqlite3 数据库配置如下原创 2021-04-14 17:13:18 · 226 阅读 · 0 评论 -
Django添加favicon.ico图标
Django添加favicon.ico图标第一步:制作ico图标制作 favicon.ico 图标的网址:www.bitbug.net 很简单,不难做完之后,将生成ico图标,命名为:favicon.ico第二步:将生成的图表存放至 静态文件夹 static/images/ 下第三步:在HTML文件 里面引入静态文件第四步:在 标签里面 添加如下语句<link rel="shortcut icon" href="{% static 'images/favicon.ico'原创 2021-04-10 11:18:09 · 923 阅读 · 1 评论 -
Django的框架模式——MTV
Django采用了 MTV 的框架模式,即模型(Model)、模板(Template)和视图(Views),三者之间负责不同的职责。模型:数据存储层,处理与数据相关的所有事务,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。负责业务对象与数据库的对象(orm)。模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。Django作为Web框架,需要一种很便利的方法动态的生成HTML网页,因此有了模板这个概念。模板包含所需HTML的部分代码以及一些特殊的语法,原创 2021-04-04 19:03:43 · 1045 阅读 · 0 评论 -
Django新版本较旧版本的变动
2017年12月2日,Django官方发布了2.0版本,成为多年来第一次大版本提升,现在本人使用的是3.1.2版本。其中主要特性是 Django2.X支持 Python3.4以上的版本,不再支持Python2,而Django1.11是支持 Python2.7 的最后版本。此外,新版本还有以下显著的新特性。简化URL路由语法:使得 Django.urls.path() 方法的语法更简单。功能的导入由模块Django.urls实现,如:from Django.urls import include,pat原创 2021-03-31 15:10:18 · 479 阅读 · 0 评论 -
Django中使用基于类的视图
基于类的视图是将视图视为 Python 对象(而非函数)的另一种方案。由于视图表示为一种可调用的程序,接收 Web 请求并返回 Web 响应,因而可将视图定义为类方法。Django 对此提供了视图基类,且均继承自View 类,并用于处理 HTTP 方法调度和其他常见功能。对于某些应用场合来说,基于类的视图优于基于函数的视图,主要体现在以下几个方面:在独立的方法中组织与 HTTP 方法相关的代码,如 GET、POST或 PUT。采用多重继承创建可复用的视图类(也称作混入类)。关于基于类的视图,读者原创 2021-02-06 17:22:19 · 181 阅读 · 0 评论 -
Django创建视图模板
前述内容针对本人的 blog 引用程序创建二零视图和URL, 下面将添加模板,并以用户友好的方式显示帖子。接下来在blog 应用程序目录中创建下列目录和文件:templates/ blog/ base.html post/ list.html detail.html上述结构将表示模板的文件结构。其中,base.html 文件包含了站点的HTML 主结构,并将内容划分为主内容区域和侧栏。list.html 和 detail.html原创 2021-01-16 21:24:06 · 136 阅读 · 0 评论 -
Django向视图添加URL路径
URL 路径可将URL 映射至视图上。具体来说,URL 路径由字符串路径、视图和可在项目范围内命名URL的名称(名称为可选参数)组成。Django 遍历每一个URL路径,并在第一个与请求URL匹配的路径处停止。随后,Django 导入与URL 路径匹配的视图并对其加以执行、传递HttpRequest 类实例和关键字(或者位置参数)。下面在blog 应用程序目录的urls.py 文件中添加下列代码行:from django.urls import pathfrom . import viewsapp原创 2021-01-14 19:39:33 · 443 阅读 · 0 评论 -
Django构建列表和详细视图
在了解了如何使用ORM后,即可着手准备构建你们的应用程序视图(这里本人以博客为例)。Django视图仅表示为一个Python函数,接收 Web 请求并返回一个 Web 响应。另外,返回响应结果的全部逻辑均位于视图中。首先,需要创建应用程序视图,并于随后针对每个视图定义URL。最后,还需要创建HTML 模板,以渲染视图所生成的数据。其中,每个视图将渲染一个模板(向其中传递变量),并返回包含渲染输出结果的 HTTP 响应。生成列表和视图下面开始创建视图以显示帖子列表。编辑 blog 应用程序的 views原创 2021-01-13 20:16:10 · 258 阅读 · 0 评论 -
Django制定模型的显示方式
下面主要与管理站点的定制方式有关。对此,可编辑某某应用程序(这里本人以blog为例)的admin.py 文件,并对其予以修改,如下所示:from django.contrib import adminfrom .models impot Post@admin.register(Post)class PostAdmin(admin.ModelAdmin): list_display = ('title', 'slug', 'author', 'publish', 'status')这里原创 2021-01-12 16:19:13 · 246 阅读 · 0 评论 -
Django针对模型创建管理站点
根据各位曾定义的模型,我们来创建简单的管理站点并对应用进行适当管理。Django包含了内建的管理接口,这对于编辑内容来说十分有用。通过读取模型元数据,同时提供针对编辑内容的产品接口,Django可自动构建管理站点。用户可直接对其加以使用,并配置模型的显示方式。django.contrib.admin 已包含与INSTALLED_APPS设置中,因而无须对其予以添加。创建超级用户首先需要创建一个用户并管理站点。对此,可运行下列命令:python manage.py createsuperuser原创 2021-01-11 21:20:31 · 142 阅读 · 0 评论 -
Django设置并使用迁移方案
在Django中编写好models.py文件后,根据所创建的模型类,我们需要对此定义数据库表。Django配置了迁移系统,跟踪模型产生的变化内容,并将其传送至数据库中。相应的,migrate命令可针对 INSTALLED_APPS 列出的全部应用程序执行迁移操作并同步对应的数据库(其中包含了当前模型和现有的迁移内容)。首先需要针对我们的模型创建初始迁移。在项目的根目录中,可运行下列命令(makemigrations最好后面跟个应用名,不跟也没关系):python manage.py makemigrat原创 2021-01-10 17:37:58 · 300 阅读 · 0 评论 -
激活django应用程序
为了使Django跟踪应用程序,同时可针对其模型创建数据表,我们需要对其予以激活。对此,可编辑settings.py文件,并向INSTALLED_APPS设置中加入xx.apps.xxxxConfig。其中:xx:指的是 项目下的应用名(通过startapp命令建的那个名字),xxxx:指的是 项目名,如下所示:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.con原创 2021-01-09 17:03:06 · 271 阅读 · 2 评论 -
Django中项目和应用程序的区别及如何创建应用程序
在Django中,项目:被视为基于某些设置项的Django安装结果;应用程序:表示为模型、视图、模板、以及URL的组合;应用程序与框架进行交互,提供特定的功能,并可在不同的项目中加以复用。我们可以将项目视为一个站点,其中包含了多个应用程序,例如:博客、wiki或者论坛等,同时还可以被其他项目予以复用。创建应用程序在项目的根目录中,可运行下列命令:python manage.py startapp blog这将生成该应用程序的基本结构,如下所示:上述文件具体解释如下:admin.py:原创 2021-01-07 21:18:49 · 1001 阅读 · 0 评论 -
有关Django项目设置中的setting.py文件主要配置简述
setting.py文件中涵盖了Django所包含的多项设置,但仅是Django设置的一部分内容。读者可以访问 https:docs.djangoproject.com/en/3.0/ref/settings/查看全部设置项和默认值。下列设置项应格外重视:DEBUG:定义为一个布尔值,表示开启/禁用当前项目的调试模式。如果DEBUG为True,当应用程序抛出未捕获异常时,Django将显示详细的错误页面。如果要发布项目上时,需将其设置为False,以免暴露某些与产品相关的敏感参数。ALLOWED_HO原创 2021-01-06 21:36:48 · 338 阅读 · 0 评论 -
运行Django开发服务器
Django中包含了轻量级的Web服务器,并可快速运行代码,且无需花费额外的时间配置产品服务。当运行Django开发服务器时,会不断检查代码中的更改内容,从而不必在代码更改后手动重新进行加载,但是如果你添加了新的文件,需要手动重启,否则Django无法识别。运行Django开发服务器:在项目的更文件夹下输入下列命令,即可启动开发服务器:python manage.py runserver对应的结果如下:System check identified no issues (0 silenced).原创 2021-01-05 21:02:26 · 637 阅读 · 0 评论