欢迎关注【佛系学python】~ 最近听到一首好听的歌,分享给大家~ 概念 Django是一种 免费开源的高级python Web应用框架 用于快速开发Web网站 由经验丰富的开发人员构建 它解决了Web...Django中 控制器接受用户输入的部分 由框架自行处理 所以Django里更关注的架构是 MTV T代表模板(Template) 优点 可重用性 易维护 易扩展 减少代码量 安装Django...首先我们要安装Django 因为Django是由python编写的 所以安装的Django版本需要跟自己python版本相对应 否则安装会出错 通过下图根据自己的python版本安装相对应的Django...因为我python版本是3.6的 选择安装的是2.2LTS最新版本 pip install django==2.2 #"=="用来指定版本号 安装完后我们来检验是否安装成功 python -m django...--version #如果出现版本号,说明安装成功 下节将带大家初步使用django 本人目前也正在学习这方面的知识 所以感兴趣的同学可以加入我们的 佛系大家庭~ 一起探讨 群里也有很多热情的小伙伴
for ... empty if ,elif 和 else with 定义一个中间变量 csrf_token 常用语法 Django模板中只需要记两种特殊符号 {{ }} 和 {% %} {...:s"}} 个可视化输出的字符:点击查看 safe Django的模板中会对HTML标签和JS等语法标签进行转义,原因显而易见,这样是为了安全。...为了在django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉django这段代码是安全的不必转义。...文件 views.py 编写自定义filter from django import template register = template.Library() @register.filter...Django的模板语言中属性的优先级大于方法 def xx(request): d = {"a":1,"b":2,"c":3,"items":"100"} return render(request
Django messages 框架 在网页应用中,经常需要在处理完表单或其它类型的用户输入后,显示一个通知消息(也叫做“flash message”)给用户。...对于这个功能,Django 提供了基于 Cookie 和会话的消息,无论是匿名用户还是认证的用户。其消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。...django-admin startproject 创建的默认 settings.py 已经包含启用消息框架功能需要的所有的设置: INSTALLED_APPS 中的 ‘django.contrib.messages...MIDDLEWARE_CLASSES 中的 ‘django.contrib.sessions.middleware.SessionMiddleware’ 和 ‘django.contrib.messages.middleware.MessageMiddleware...如果不想使用消息框架,可以删除 INSTALLED_APPS 中的 ‘django.contrib.messages’、MIDDLEWARE_CLASSES 中的 MessageMiddleware 和
Django Rest Framework 分页(下) ?...在之前的 django rest framework,其它组件中,在视图函数中继承类都是 rest_framework.view.APIView,这个 APIView 是继承的 django 中的 View...那么在 django rest framework 中,还有没有提供其它的类能够继承?...这里实现的功能和 django rest framework 之分页中的功能一样,先获取数据,分页,序列化返回。...③ 视图 视图中基本上一样,只不过更改了不同 http 请求方法的对应类方法名 ?
Django进阶篇 Rest framework (八) ?...一、权限实例 目录结构 为模型类添加认证字段 具体权限认证 全局配置 视图 路由分发 请求测试 ① 目录结构 为了更好的管理各个功能组件,在 django rest framework 认证中,可以将认证类单独的拿出来...这里只是判断用户的 USER_TYPE 的字段,判断用户是否有权限,也可以添加其它的逻辑进行判断。...④ 全局配置 在上一节的 Django进阶篇 Rest framework (七) 的认证中,将认证类放到了 settings.py 文件中,这样会作用到视图中的每个视图类,如果视图类想要自己进行认证,...⑤ 视图 在视图 view.py 中定义一个用户详情类 UserInfoView 作为测试,这里的视图和上一节的 views.py 文件是相接的。 ? 续 ? ?
Django Rest Framework 序列化(下) ? 一、校验数据 序列化不仅可以做数据的返回,也可以对前端提交的数据进行校验 案例目录 ?...上面的 TitleValidator 类封装了对 request.data 前端传来的数据的校验,title 相对应的是数据中的 key 为 value 的值。...TitleValidator 实现了 call() 特殊方法,并把具体的验证逻辑封装到里边,是一个可直接调用的对象。而 self.base 则为具体的 title 对应的数据,进行处理。...在定义钩子方法的时候,钩子函数是以 validate_字段名 的方法进行命名的。只有遵循这样的格式,在 Serializer 内部会对钩子函数的名字进行拆分并识别出来。...② 视图 在 不使用 django rest framework 中的分页组件仍能达到目的。 ? ?
Django Rest Framework 权限(下) ? 简介 思路 一、节流 ① 简介 节流又叫限流,限制访问。...通常一个用户在多次请求一个页面,或者点击一个链接的时候,前几次点击是没问题的,但是一旦连续几次之后,就会出现访问受限,离下一次访问还有50秒等的字样,在 django rest framework 中有一个专门的组件来做限制访问...② 思路 一旦一个用户向资源发送请求,那么根据用户的身份就有两种情况,匿名用户和认证用户。那么根据用户的身份怎么做限制访问?就是要找到用户的唯一标识。...匿名用户:对于匿名用户,唯一能用来标识的只有请求的IP。 认证用户:认证用户的用户名,或者用户ID等。 用户标识的问题解决了,假设设置的是每分钟只能访问5次,也就是5次/min。...根据上面的情况可以得出以下思路: 当一个用户发送请求的时候,可以在缓存(django rest framework 就是这么做的)中生成一个字典,字典的键值对分别是用户的唯一标识和用户的访问时间,例如下面
Django Rest Framework 限流(下) ?...在Django进阶篇 Rest framework (三) 中,有关版本的问题,用 restful 规范做开发接口的时候,用户请求 API,系统返回数据。...① 请求头中定义 django rest framework 的 request,其实是对原生的 Django 的 HttpRequest 做了一个封装,通过直接获取属性可以获取到请求头中的版本号。...django rest framework 的 request ? 原生的 Django 的 HttpRequest ?..._request.META.get("HTTP_HOST") # 获取版本号 version = host.split(".")[0] 在 django rest framework 内部也有关于以上两种定义版本的处理方法
DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言。...当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。...2.DTL与普通的HTML文件的区别 DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。...示例代码: from django.template.loader import render_to_string from django.http import HttpResponse def...但是django还提供了一个更加简便的方式,直 接将模板渲染成字符串和包装成HttpResponse对象一步到位完成。
如果你是按照本系列来学习 Django 框架的话,按照前面安装 Django 的方式,你安装 Django 版本应该是最新版本,即 2.0。 那么使用最新 Django 版本来学习可以吗?...另外 Django 1.8 官方只维护到 2018 年的 4 月,1.11 是最后一个兼容 Python 2 的 Django版本。...# Django 2.0 的初始配置内容 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes...3.1 创建数据表 我们上面的创建了几个模型还处于定义上,Django 还没有正真创建数据库中的表。因此,我们需要执行两个命令来同步一下数据库。...在 Django 所有支持的数据库中,-2147483648 到 2147483647 范围才是合法的。
1.MySql 驱动程序安装 我们使用Django来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。...2.Django配置连接数据库 在操作数据库之前,首先先要连接数据库。这里我们以配置MySQL为例来讲解。Django连接数据库,不需要单独的创建一个连接对象。...在Django中使用原生sql语句操作其实就是使用python db api的接口来操作。...如果你的mysql驱动使用的是pymysql,那么你就是使用pymysql来操作的,只不过Django将数据库连接的这一部分封装好了,我们只要在settings.py中配置好了数据库连接信息后直接使用Django...封装好的接口就可以操作了,引入 django中的 connection # 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息 from django.db
什么是BigPipe 关于BigPipe是在看一篇淘宝ued的官方博客上看到的,原文是说用nodejs做前后端分离的,只是稍微提了一下bigpipe。...开干 网上关于BigPipe的实现有很多,php和node.js是用的比较多的。 下面说下在python django框架下,实现一个BigPipe的例子,也方便大家理解BigPipe的思想。...然后就是接收请求的django view: import time from django.http import StreamingHttpResponse from django.template.loader...下图是用firebug看到的整个请求过程: 网页上的0到9,基本是一个一个出来的,间隔约1秒,整个请求是10.04秒,其中等待响应时间只有26毫秒。...的整个思想,以及在django上的实现。
目录[-] Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。...今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,google了好久才搞定。想想还是把这个过程记录下来,免得下次再来踩同样的坑。...然后链接Django和uwsgi,实现简单的web服务器,到Django项目目录下执行shell: uwsgi --http :8001 --plugin python --module blog.wsgi...静态文件 把Django自带的静态文件收集到同一个static中,不然访问Django的admin页面会找不到静态文件。...在django的setting文件中,添加下面一行内容: STATIC_ROOT = os.path.join(BASE_DIR, "static/") 然后到项目目录下执行: python manage.py
Django源码学习-2-Settings.py配置文件-下 ?...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...已经创建的Django工程中创建app时(假设app的名称为 index ),那么在 index 模块下默认会生成 models.py 文件,这个就是 Django 工程中操作数据库的文件。 ?...from django.db import models Django 是通过 Model 类来操作数据库的,程序员不需要关注SQL语句和数据库的类型(无论数据库是MySql、Sqlite,还是其它类型...),Django 自动生成相应数据库类型的SQL语句,来完成对数据库数据的操作。
Django Rest Framework 版本(下) ?...在前端向后端发送 form 表单或者 ajax 数据的时候,django 的 content_type 会拿到请求头中的 Content-Type 属性,然后根据值进行分析。...将 request.data 中的值放到 request.POST 中需要满足两个条件: 请求头要求: Content-Type:application/x-www-form-urlencoded 如果请求头中的...数据格式要求: name=yuntuan&age=1&gender=men ① 表单提交 form 表单提交时会自动的将请求头中的 Content-Type:application/x-www-form-urlencoded...parser=xxx&parser2=xxx 的格式。
Django 有哪些配置 创建一个项目之后,会自动在项目根目录下生成一个配置文件,即:settings.py 分为运行环境和基础功能的配置,主要包含:App、中间件、模板、数据库、域名访问权限、项目路径等...在项目开发阶段,Django 自动提供静态文件的代理服务,无需指定显式指定 STATICFILES_ROOT。.../media/' # media文件夹的完整路径 MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_URL) 为了保证 Django 找到媒体文件,即:浏览器能访问...media 文件夹的文件,需要在 url.py 文件中,将 media 文件夹注册到 Django 项目路由设置文件中。...# urls.py from django.conf import settings from django.contrib import admin from django.urls import path
项目快接近尾声了,不知道看到这一系列文章,对 python web 技术感兴趣,并且一直支持云团的小伙伴们,你们有怎样的收获?...从最开始创建项目,生成项目文件,再到业务逻辑的实现,遇到的坑和容易犯的错误,都有过总结么?也很希望小伙伴们能分享自己踩过的坑,解决问题的经验。 本项目有几个比较容易掉坑的地方,看看各位有遇到过没?...这样配置的好处在于,可以直接在 settings.py 的 INSTALLED_APPS 中直接加入各个应用的目录名。 ?...需要注意的是,如果使用 pycharm 创建新的应用,会在应用下默认生成 apps.py 文件。...如果要配置 mysql 数据库,需要修改: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql',
在Docker上运行Django和Vue Run Django and Vue on Docker Django Dockerfile 生成django项目依赖包....Generate Django project dependencies. pip freeze > requirements.txt 编写django启动脚本 run.sh Write a Django...for django FROM python:alpine3.8 ADD ....bthlt.com/bthlt_front:$1 . docker push 123.bthlt.com/bthlt_front:$1 bash build_run.sh v0.0.1 在Docker上运行...bthlt-backend:bthlt-backend 123.bthlt.com/bthlt_front:v0.0.1 ---- 葫芦的运维日志
Django 系列篇(一):Hello World! 02. Django 系列篇(二):配置篇(上) 03. Django 系列篇(三):配置篇(下) 1....补充 由于 Django 3.0+ 非长期支持版本,并且版本兼容性还存在一定的的 Bug,建议重新安装 2.2.11 长期支持版本 # 重新安装django pip3 install django==...virtualenvwrapper # 配置virtualenvwrapper虚拟环境 pass # 单独新建一个Django的虚拟环境 mkvirtualenv django 然后使用 Pycharm...路由即:URL,统一资源定位符,是从互联网上访问资源的一种表示方式,互联网上的每个文件都有其唯一的路由,用于指定网络文件的路径位置,便于我们查找 在 Django 中新增的路由,就是向外暴露出我们接受的的...urls.py,默认包含一个指向 admin 后台管理的 URL 路径 from django.contrib import admin from django.urls import path, re_path
Django Rest Framework 解析器(下) ?...一、先建立数据库,并添加相应的数据,用来后面的序列化使用 ① 建立数据库模型 为数据建立相应的数据库模型,并且有一对一,多对多,外键关联。 ?...多对多关系的时候,django 会自动生成第三张表维系表关系,字段分别是 userinfo 和 role 的 id,其中 api_userinfo_roles 为多对多关系生成的表。...二、序列化的简单使用 ① 不使用序列化 1、路由 ?...总结:上面可以实现数据的简单序列化,但是无法自定义字段,也无法对数据进行处理,不方便,限制较大。