django namespace_Django视图

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

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

from django.shortcuts import renderdef index(request): if request.method == 'POST': pass else: 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 ProfileViewurl(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代码

 
users profile
# 我在style中加入了一个颜色样式

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

46d3b7296bd8853c94b434bc2c407c95.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值