一个视图函数或者类,简称视图(view),是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是HTML页面、一个重定向、一个404错误、一个xml、json数据、或图片等,视图放置在项目或应用程序(app)目录中的名为views.py的文件中;

我们来试着写一个函数类型的View视图

from django.shortcuts import renderdef index(request):if request.method == 'POST':passelse:return render(request=request, template_name='index.html', context=None, content_type=None, status=None,using=None)其中的context是字典
content_type设置HTTP响应头字段,用于告诉前端如何解析页面
status是状态码,默认是200,可以自定义
using指定模板引擎的名称,默认是使用Django模板引擎

render()函数

语法为render(request, template_name, context=None, content_type=None, status=None, using=None)

request:用于生成此响应的请求对象; template_name:templates 中定义的文件,要注意路径名;

context:要传入文件中用于渲染呈现的数据, 默认为空字典;

content_type:生成的文档要使用的MIME 类型,默认为DEFAULT_CONTENT_TYPE 设置的值;

status:http的响应代码,默认是200;

using:用于加载模板使用的模板引擎的名称;

看完了函数视图,那我们简单的来看一下类视图,类视图比函数视图代码量更少

class ProfileView(View):def get(self, request):return render(request, template_name='profile.html')def post(self, request):pass

类视图如何具体使用

我们用之前的users app举例,在项目中增加一个profile.html文件(项目的templates中,html文件都在这个文件夹中),我们想要的效果能成功访问/users/profile/
首先我们需要在users APP中的urls.py模块中处理,需要导入ProfileView这个类:

from .views import ProfileView
url(r'^profile/$', ProfileView.as_view(), name='profile'),

此时会报错,因为我们还没有创建这个类,那我们先在users APP的views.py中编写ProfileView类

class ProfileView(View):def get(self, request):return render(request, 'profile.html', {'name': 'Angle'})def post(self, request):username = request.POST.get('username', "")password = request.POST.get('password', "")return render(request, 'index.html', {'username': username, 'age': 18})

然后在之前创建的profile.html文件中随意几句HTML代码

<div style="color: red;">users profile</div>
# 我在style中加入了一个颜色样式

我们在刚刚编写的ProfileView类中打上断点,然后我们运行项目,选择Run-->Debug 项目名称,然后运行,在控制台中会出现这个地址: http://127.0.0.1:8000/,我们点进去,然后在后面加上/users/profile/的路径,是不是就能看到我们编辑的HTML代码users profile了;

django01.png

刚刚说到打断点,我们再来详细说一下如何在Django项目中调试断点

  • 第一步:在想要调试的代码前打上断点,也就是在代码前面,行号的后面的位置,鼠标单击,就可以设置断点了;
  • 第二步:先确保项目没有在运行状态,然后选择Run->Debug->选择要运行项目的名称,此时就进入了断点调试,断点还有好多其他操作和功能,把鼠标移到相应的按钮上看一下就能知道了;

配置users的url(再配置路由的时候可能会出现的问题)

配置users的url的时候可能会出现url(r'^users/', include('users.urls', namespace='users'))报错的问题,原因可能是Django的版本造成,1.0版本和2.0版本的源码不同,include方法所带的参数不同,2.0中include方法不能接受app_name参数,我们需要做一些调整,解决方法为:url(r'^users/', include(('users.urls', 'users'), namespace='users')),这样就可以正常启动了

详细点击:https://www.9xkd.com/user/plan-view.html?id=1994769508

django 按钮的样式_Python学习第五十六天记录打call:Django视图相关推荐

  1. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    JavaWeb学习总结(五十二)--使用JavaMail创建邮件和发送邮件 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两 ...

  2. JavaScript学习(五十九)—原型、原型链、闭包以及闭包的不足

    JavaScript学习(五十九)-原型.原型链.闭包以及闭包的不足 一.什么是闭包? 所谓闭包就是指被定义在其他函数内部的函数. 闭包函数可以访问它所在的函数的所有变量. 文字太抽象了,画图解释一下 ...

  3. JavaScript学习(五十八)—作用域链

    JavaScript学习(五十八)-作用域链 一.作用域链 在每个作用域中都有一个对象,这个对象被称为变量对象. 变量对象的作用就是用来管理该作用域下面定义的变量和函数的,也就是在该作用域下面定义的变 ...

  4. JavaScript学习(五十六)—寄生式继承(临时构造器的使用)

    JavaScript学习(五十六)-寄生式继承(临时构造器的使用) 寄生式继承(临时构造器的使用): 之所以要使用临时构造器就是要在实现原型链继承时获取上级构造方法原型中的内容,而不要它的私有属性 默 ...

  5. JavaScript学习(五十五)—组合继承

    JavaScript学习(五十五)-组合继承 组合继承:就是借用构造方法继承和原型链继承的组合形式

  6. JavaScript学习(五十二)—继承、call方法和apply方法

    JavaScript学习(五十二)-继承.call方法和apply方法 学习内容 一.继承 二.call方法 三.apply方法 一.继承 所谓继承就是两个构造方法建立起来的某种联系,通过某种联系,可 ...

  7. JavaScript学习(五十)—hasOwnProperty属性和in关键字

    JavaScript学习(五十)-hasOwnProperty属性和in关键字 一.hasOwnproperty方法 作用:判断属性是否为对象的私有属性 格式:对象名称.hasOwnProperty ...

  8. 孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库...

    孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第二 ...

  9. 学习python第十六天, 一周总结

    学习python第十六天, 一周总结 这一周主要学习内容如下 函数 函数的调用 函数的参数问题 使用模块 递归函数 面对对象编程 继承问题,父类.子类 关联问题,普通关联.强关联 依赖关系 多态 复习 ...

最新文章

  1. Linux下的内存对齐函数
  2. 图元变形lisp源码_AutoLISP入门6---图元资料的取得与活用技巧(一).pdf
  3. sort 与 sorted 区别:
  4. Android开发之实现锁屏功能
  5. P3320:寻宝游戏(生成树)
  6. ABP源码分析二十五:EventBus
  7. devops_面向内向的人的DevOps
  8. STM32的新编译软件STM32CubeIDE
  9. 工业相机选型和镜头焦距计算
  10. mac配置VMware Fusion虚拟机网络配置
  11. Ubuntu20.04以及Ubuntu18.04修改键盘布局(法语键盘)
  12. windows 图标文件在哪里?
  13. C语言 四则运算来喽!!小朋友的数学不再愁!
  14. 注释工具一键添加佛祖保佑永无BUG、神兽护体等注释图案
  15. 单独的html怎么实现微信分享,html静态页面实现微信分享思路
  16. php5时区,PHP5 时区设置方法详解
  17. iOS10的适配总结
  18. 三极管吸潮失效分析案例
  19. PXC高可用集群总结
  20. ibm dsa生成html,IBMxSerial服务器故障诊断工具DSA

热门文章

  1. python中breakpoint什么意思_it/breakpoint是什么意思
  2. oracle中断进程,中断ORACLE数据库关闭进程导致错误案例
  3. mysql被跑死_MySQL 8.0.23中复制架构从节点自动故障转移
  4. Mybatis plus修改了Language Level后,IDEA运行应用出现了Information:java: javacTask: 源发行版 8 需要目标发行版 1.8
  5. pl/sql连接Oracle数据库的方式
  6. 服务器内存 知乎_服务器内存和普通内存有什么区别?可以通用吗?
  7. 快速批量一个半小时插入1亿条数据到mysql
  8. 双系统 android 华硕,华硕发布Duet TD300,首款真正Windows+安卓双系统笔记本
  9. Mysql查询某字段值重复的数据个数
  10. mysql sql汇总查询将两个结果集合并一行展示