Django视图函数之三种响应模式】的更多相关文章

视图函数响应处理: from django.shortcuts import render,HttpResponse,redirect (1)render 处理模板文件,可以渲染模板,第一个参数必须为封装好的元请求数据request return  render(request,"index.html",{"name":"zhang"}) (2)HttpResponse  处理字符串数据,可以是带标签的字符串 return HttpRequest…
FBV模式: FBV(function base views) 就是在视图里使用函数处理请求. 一般直接用函数写的都属于是FBV模式. veiws.py from django.shortcuts import render,HttpResponse # Create your views here. def login(request): if request.method=="GET": return render(request,"login.html") e…
官方文档: https://docs.djangoproject.com/en/1.11/ref/request-response/ 视图中的request请求对象: 当请求页面时,Django创建一个HttpRequest包含有关请求的元数据的对象. 常用的值和操作: ·         request.method      #获取请求属性 ·         request.GET         #获取GET请求的参数字典信息,用.get()取值 ·         request.PO…
治大国若烹小鲜.以道莅天下 --老子<道德经> 本节内容 Django web项目的运行流程分析 视图处理函数的定义 多视图处理函数及接收参数 1. web项目运行流程分析 通常情况下,完整的处理流程如下: 浏览器发起请求(浏览器:大爷,我需要http://localhost:8000/polls这个资源,给我吧): 服务器接收到用户请求,开始分析这个URL地址(服务器:介个家伙要什么东东啊,掐掉URL默认的头部http://localhost:8000,剩下的就是要访问的东东了,原来是要访问…
FBV模式装饰器: 普通函数的装饰器(语法糖@) views.py from django.shortcuts import render def wrapper(f): def inner(*args,**kwargs): print("before") ret=f(*args,**kwargs) print("after") return ret return inner @wrapper def index(request): return render(re…
视图函数,简称视图,本质上是一个简单的Python函数,它接受Web请求并且返回Web响应. 响应的内容可以是HTML网页.重定向.404错误,XML文档或图像等任何东西.但是,无论视图本身是个什么处理逻辑,最好都返回某种响应. 视图函数的代码写在哪里也无所谓,只要它在你的Python目录下面.但是通常我们约定将视图放置在项目或应用程序目录中的名为views.py的文件中. 一.简单的视图 下面是一个返回当前日期和时间作为HTML文档的视图: from django.http import Ht…
1 视图views概述 1 作用: 视图接受web请求并响应web请求 2 本质: 视图就是python中的处理函数 3 响应: 一般是一个网页的HTML内容.一个重定向.错误信息页面.json格式的数据 2 django访问过程 #1用户在浏览器输入网址 www.sunck.wang/sunck/index.html #2 django获取网址信息 网址去除ip与端口 sunck/index.html #3 url管理器 逐个匹配url.conf 记录视图函数名 #4 视图管理器 匹配对应的视…
一.视图函数 1. 视图函数的第一个参数一定是一个HTTPRequest类型的对象,这个对象是Django自动创建的,具体形参名通常用request.通过这个对象,可以调用请求的一些参数,比如request.path,request.method,request.META去查看请求信息. 2. 视图函数必须返回一个HTTPResponse类型的对象.(也可以用JsonResponse,StreamingHttpResponse,FileResponse类返回非http对象) def detail…
第一种:函数直接执行模式 function add(a,b){ console.log(this); return a+b; } add(10,20)//this===window 第二种:对象方法的调用模式 var obj={ name:'aaa', age:20, said:function(){ console.log(this); } } obj.said();//this===obj,此处this指代被调用者 第三种:构造器的调用模式 function School(){ this.s…
CBV 基于类的视图  FBV 基于函数的视图 CBV: 1 项目目录下: 2 urlpatterns = [ 3 path('login1/',views.Login.as_view()) #.as_view()固定格式,自 4 ] 5 #.as_view()固定格式,自匹配类中的下面的方法(须自定制) 6 http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'] 7 8…
工厂模式实现了创建者和调用者的分离,实现了更好的解耦.   详细分类: 1) 简单工厂模式(静态工厂模式): 2) 工厂方法模式: 3) 抽象工厂模式 面向对象设计的基本原则: 1)       OCP(开闭原则, Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭. 2)       DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程. 3)       LoD(迪米特法则, Law of…
from django.shortcuts import render, redirect, HttpResponse from .forms import LoginForm, RegistrationForm from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User from django import forms from .models i…
class MyDateTimeEncode(json.JSONEncoder): def default(self, o): if isinstance(o, datetime): return o.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(o, date): return o.strftime('%Y-%m-%d') else: return json.JSONEncoder.default(self, o) def seriallizer_…
一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件urls.py中,之所以叫路由系统是为了好听 2.路由系统格式: urlpatterns = [url(正则表达式, views视图函数,参数,别名),] 注释:1.正则表达式就是Python中提及到的正则表达式,匹配的是url下的路径    2.视图函数就是url路径对应的函数    3.参数就是需…
一:修改视图函数 报错:ImportError: No module named 'django' 原因是:pycharm中的解释器未选择虚拟环境里面的python3 from django.shortcuts import render # Create your views here. from django.http import HttpResponse def index(request): """ :return: """ retur…
介绍函数四种调用模式前,我们先来了解一下函数和方法的概念,其实函数和方法本质是一样,就是称呼不一样而已.函数:如果一个函数与任何对象关系,就称该函数为函数.方法:如果一个函数作为一个对象属性存在,我们就称之为方法.接下来就可以开始今天的主体. 1.函数调用模式. 就是通过函数来调用,规范写法为:function fn(){} fn(); 函数中this的指向->window.案例如下: var age = 38; var obj = { age: 18, getAge: function() {…
Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 RuntimeError: There is no current event loop in thread 因为asyncio程序中的每个线程都有自己的事件循环,但它只会在主线程中为你自动创建一个事件循环.所以如果你asyncio.get_event_loop在主线程中调用一次,它将自动创建一个循环对象并…
接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import HttpResponse def index(request): return HttpResponse("Hello World! You're at the polls index.") 2.上面是一个最简单的Django视图函数,为了调用这个视图函数,我们需要为它做一个URL映射:在目录…
1.在应用目录下创建模板(templates目录) 在模板目录下创建archive.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Archive</title> </head> <body> {% for post in posts%} <h2>{{post…
一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.除此之外没有更多的要求了——可以说“没有什么神奇的地方”.为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的…
一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.除此之外没有更多的要求了--可以说"没有什么神奇的地方".为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为view…
 一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n".encode("utf-8&q…
Django基础三之视图函数   本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当…
Django基础三之视图函数   本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当…
一.视图函数view 视图函数是接收一个请求(request对象),并返回响应的函数 1. HttpResponse响应请求 这个方法是返回字符串一类的,可以识别标签 2. render响应请求 render(request,".html",[**kwargs]),返回一个html页面,参数可以传给html中需要渲染的变量 3. redirect响应请求 redirect(reverse("url"),[*args]),重定向跳转到一个页面 二.CBV和FBV 1.…
ListView TemplateView DetailView 之前的代码实例基本上都是基于FBV的模式来撰写的,好处么,当然就是简单粗暴..正如: def index(request): return HttpResponse('hello world') 上面的写法,基本接触不到视图函数里面的通用视图.只是在介绍CBV的时候稍微介绍了下引用,大概用法. 导入 之前的导入一直用的是 from django.views import View 这里从view下钻一下会发现: from djan…
一.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. ''' urlpatterns = [ url(正则表达式, views视图函数,参数,别名),] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个…
一.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. ''' urlpatterns = [ url(正则表达式, views视图函数,参数,别名),] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个…
视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST.getlist() # 上传文件,form标签要做特殊设置 obj = request.FILES.get('fafafa') obj.name 上传的文件名 obj.chunks() 上传的文件内容 f = open(obj.name,mode='wb') for item in obj.chun…
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,500 2.json数据: 过程: --url配置-- 配置流程: 一.指定根级url配置文件:在Setting.py文件中 ROOT_URLCONF = 'xindjago.urls' 二.urlpatterns: 1.一个url实例的列表 2.url对象:正则表达式---视图名称----名称 三.url匹配正…