首页
学习
活动
专区
圈层
工具
发布

Django源码学习-12-ContextMixin 上下文

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...用法示例: from django.views.generic import TemplateView TemplateView.as_view(extra_context={'title': 'Article...Mixin 提供数据,View 提供模板和渲染。所以一般get_context_data在Mixin中,get(),post(),head()在View中。...View:会调用所有的get方法,post方法,具体是这些['get', 'post', 'put', 'delete', 'head', 'options', 'trace'],View中是没有返回一个...Django中Mixin和View把原来的视图函数中的三个东西分开了,模板(TemplateResponseMixin),上下文数据(ContextMixin),负责将这些联系起来的(View)。

70620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python-Django-视图函数(二)

    类视图通常比函数视图更灵活和可扩展,并提供更好的代码组织和可重用性。Django提供了许多内置的类视图,如DetailView和ListView,可以用于快速创建常见的Web应用程序功能。...以下是一个使用类视图的示例,它使用Django内置的TemplateView类来渲染HTML模板:from django.views.generic import TemplateViewclass HelloView...(TemplateView): template_name = 'hello.html'在这个示例中,我们定义了一个名为HelloView的类视图,它继承自Django的TemplateView类...Django REST框架是一种流行的用于构建Web API的Django扩展,它提供了许多内置的API视图类和工具。...@require_http_methods:限制视图只能处理特定的HTTP方法(GET,POST等)。@csrf_exempt:允许视图处理不带CSRF令牌的POST请求。

    91232

    Django 之视图篇

    给我们提供了很多和HttpResponse类似的简单视图,通过查看django.http 代码我们知道 此类视图使用方法基本类似,可以通过return语句作为直接反馈返回给浏览器 Http404为Exception...: 一个类似于字典的对象,包含post请求方式的所有参数 FILES: 一个类似于字典的对象,包含所有的上传文件 COOKIES: 一个标准的Python字典,包含所有的cookie,键和值都为字符串...,值是可变的 案例/views/v9_post settint 中设置模板位置 设置get页面的urls和函数```py def v9_post(request): rst = '' for...import login_required, permission_required from django.views.generic import TemplateView from .views...import method_decorator from django.views.generic import TemplateView class ProtectedView(TemplateView

    1.5K87

    Django中的request.POST重构

    环境,搭建主从关系 2.开通主从两台环境和MHA manager节点之间的防火墙 3.创建主从节点和MHA manager节点的SSH信任关系 4.跑脚本生成线上环境规定的目录形式 5.启动MHA 6....所以这个问题的重点就集中在了,怎么把前端发过来的request.POST请求进行拼接重构,然后再用拼接好的request.POST值作为api的参数,去调用防火墙开通的api,开通防火墙的api的参数格式和调用方法如下...重构成一个QueryDict对象,这样才能实现替代和拼接,这里我们先给出QueryDict的实例化方法: #在HttpRequest对象中,属性 GET 和 POST 得到的都是 django.http.QueryDict...#这是一个 django 自定义的类似字典的类,用来处理同一个键带多个值的情况。...request.user.id, request.POST) 可以看到,在进行重构之前,必须导入QueryDict相应的包,也就是django.http包,我们首先把request.POST中的内容拿到

    1.3K30

    零基础使用Django2.0.1打造在线教育网站(十一):登录页面实现

    ,TemplateView.as_view可以将template转换为view path('', TemplateView.as_view(template_name='index.html')...在里面添加如下代码: # 当我们配置的url被这个view处理时,将会自动传入request对象. def user_login(request): # 前端向后端发送的请求方式有两种: get和post...request对象. def login(request): # 前端向后端发送的请求方式有两种: get和post # 登录提交表单时为post if request.method...== "POST": # username,password为前端页面name的返回值,取到用户名和密码我们就开始进行登录验证;取不到时为空。...因此我们一定不能把自定义的函数名和Django自带的函数名取同一个名字,那样会造成系统错误。 所将自定义的函数命名为user_login,就不会出问题了!

    2K10

    django 1.8 官方文档翻译: 3-4-1 基于类的视图

    这个可调用对象可以不只是函数,Django 提供一些可以用作视图的类。它们允许你结构化你的视图并且利用继承和混合重用代码。...所有的视图类继承自View类,它负责连接视图到URL、HTTP 方法调度和其它简单的功能。RedirectView用于简单的HTTP 重定向,TemplateView扩展基类来渲染模板。...Django 有一个通用视图TemplateView来做这件事,所以我们可以简单地子类化它,并覆盖模板的名称: # some_app/views.py from django.views.generic...TemplateView是一个类不是一个函数,所以我们将URL 指向类的as_view()方法,它让基于类的视图提供一个类似函数的入口: # urls.py from django.conf.urls...如果没有新的书籍,仍然从数据库中获取书籍、渲染一个完整的响应并发送给客户端将是对CPU 和带宽的浪费。如果有个API 用于查询书籍最新发布的时间将会更好。

    1.2K30

    django项目中如何把sitemap.xml等静态文件放到web根目录

    有两种方案 第一种方案、 将相应的sitemap文件放入网站的templates文件夹中同时在网站的根urls文件中添加如下代码 from django.views.generic import TemplateView...urlpatterns = [ re_path(r'^sitemap\.xml', TemplateView.as_view(template_name='sitemap.xml',content_type...='text/text')), ] urls.py中加入新的urlpattern,用TemplateView去展示 第二种方案、 直接交给nginx来处理,在nginx的conf文件中加入要处理的static...URL和路径 location /sitemap.xml { alias /path/to/static/sitemap.xml; } 我有的第一种方法测试成功,可以成功被百度等识别,第二种的我没测试...参考:http://stackoverflow.com/questions/18424260/django-serving-robots-txt-efficiently

    1.1K20

    Django 2.1.7 处理ajax请求、GET、POST请求

    需求问题 在业务处理的工作中,在同一个视图处理上,可能会有普通的GET、POST请求,还会有ajax请求。 那么怎么在处理这些请求的时候做上区分呢?...视图函数: 同时存在GET,POST,Ajax处理 def test(request): if request.method == 'GET': ......return JsonResponse({'resCode':'0'}) if request.method == 'POST': ......这是一种前面文章Django 2.1.7 类视图中,在介绍类视图的时候说明了一个视图函数如何在同一个url情况下处理GET以及POST请求。 那么这里就是增加上了同时处理ajax的请求。...return JsonResponse({'resCode':'0'}) 其实如果没有那么多不同类型的请求,直接根据ajax的请求类型继续GET和POST处理即可。

    2.2K40

    Django-bootstrap3|在Django中快速使用Bootstrap模版

    前言 关于如何快速基于Django使用别人写好的模版搭建网站之前已经有详细讲过,一般我们在Django中使用Bootstrap模版都需要经过以下几个步骤 下载一个Bootstrap模版 创建app并粘贴模板到对应的的...使用django-bootstrap3 首先我们需要下载安装django-bootstrap3插件,使用 pip install django-bootstrap3 即可成功安装,但是使用该插件需要:...接着将整个模版复制粘贴至app文件夹下,并修改views.py视图函数,比如我的模版中只有一个index.html from django.views.generic.base import TemplateView...class HomePageView(TemplateView): template_name = "app/index.html" 接着去将该页面添加至urls.py中 from django.conf.urls...bootstrap_css %} {% bootstrap_javascript %} 这么一番操作,可以省去很多复制、修改路径的繁琐操作,如果有一套现成的bootstrap模版可以更快速的上手,并且这个库还有对于表单和按钮的一些优化

    7.1K20

    Django-开发Get、Post接口与基本操作

    Django-开发Get、Post接口与基本操作 目录 1、开发Get接口 2、开发Post接口 3、基本操作 3.1、基本命令 3.1.1、数据库相关 3.2、创建一个项目 3.2.1、项目目录 3.2.2...添加内容如下: from django.http.response import HttpResponse from django.shortcuts import render_to_response...引用创建好的Post方法from web.views import Post urlpatterns添加URL地址path('post/', Post) 4、修改settings.py文件。...3、基本操作 3.1、基本命令 命令行输入 django-admin startproject # 创建一个Django项目 startapp # 创建一个Django应用 check # 检查项目完整性...runserver # 本地简易运行Django项目 shell # 进入Django项目的Python Shell环境 test # 执行Django用例测试 3.1.1、数据库相关 makemigrations

    1.8K20
    领券