1. 使用之前先导入他们 from django.shortcuts import HttpResponse, render, redirect 2. HttpResponse: 它是作用是内部传入一个字符串参数,然后发给浏览器. (如果是Ajax请求,建议永远让服务器返回一个字典(return HttpResponse(json.dumps(字典)))) def index(request): # 业务逻辑代码 return HttpResponse("OK") 3. render:…
浅谈Django的中间件 与Python的装饰器 一.原理 1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该函数.在开发项目中,通常使用装饰器来管理权限,登录等等,配上Python的 @ 语法糖,轻松实现代码的重用性和低耦合性. 2.而Django中的中间件是利用面向切面的编程思想,对Django服务器访问过程中间进行干预. 是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Dj…
开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 目录 变量与常量的命名 变量的底层创建 注释方式 交互input函数 格式化输出 运算符 流程控制 正文 正文的主要讲述内容包括:变量与常量的命名:底层变量的创建方式:注释方式:交互i…
简介 是一个为完美主义者设计的web框架 The web framework for perfectionists with deadlines. Django可以使你能够用更少的代码,更加轻松且快速去开发web应用. Django makes it easier to build better Web apps more quickly and with less code. 下面这段太长了,有请百度翻译: ​ Django是一个高级python web框架,它鼓励快速开发和干净.实用的设计.…
Django的生命周期和CBF和FBC 对于所有的web框架来说本质就是一个socket服务端,浏览器是socket客户端,客户端和服务端通信,字符串(Http协议):请求头和请求体 响应头+响应体 而对于Django这个web框架其整个请求的生命周期如上图所示 需要提别提醒的是大部分人以为Django内部封装了socket,其实不然,Django的socket是没有封装的,而是外部插件. 路由系统(FBV&CBV) 一.FBV(function base view) 在Django的url中我…
结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象. 参数: request: 用于生成响应的请求对象 template_name: 要使用的模板的完整名称, 可选的参数 context: 添加到模板上下文的一个字典. 默认是一个空字典. 如果字典中的某个值是可调用的, 视图将在渲染模板之前调用它. content_type: 生成的文档要使用的MIME类型. 默认为DEFAULT_CONTENT_TYPE设置的值. 默认为"text/html"…
1. HttpResponse :  它的作用是内部传入一个字符串参数, 然后发给浏览器 def index(request): return HttpResponse('ok') 2. render :  可以接收三个参数, 一是request参数, 二是待渲染的 html 模板文件, 三是保存具体数据的字典参数 def index(request): return render(request, 'index.html', {'name':'prince', 'hobby':['rendin…
HttpResponse 主要用于返回字符串类型的数据 def index(request): return HttpResponse('index页面') 在页面中就会显示 index页面 render 主要用于返回html文件 并且支持模板语法(django自己写的) 在浏览器中输入http://127.0.0.1:8000/index/后,会返回index.html页面. def index(request): return render(request,'index.html') 使用r…
使用Q查询,首先要导入Q模块: from django.db.models import Q 可以组合使用&,|操作符用于多个Q的对象,产生一个新的Q对象,Q对象也可以用~操作符放在前面表示否定,如下例所示: if search: keywords_list = search.split(' ') query_list = [Q(status__icontains=get_success_fail_status(keyword)) if get_success_fail_keyword_stat…
跨表操作在数据库操作非常常用,虽然其会降低读取数据的性能,但是它能节约数据在硬盘中的占用,优化数据表的结构和各自之间的关系. 在sql中,一般跨表需要用到 join 关键字 select * from table1 left join table2 on table1.id = table2.id 那到了Django框架中,又是如何实现跨表的呢? #创建一个类 class userinfo(Models): user_name = models.charField(max_length=32)…