前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python网站 3 建立控制层,建立路由

Python网站 3 建立控制层,建立路由

作者头像
超级大猪
发布2019-11-21 21:26:31
2K0
发布2019-11-21 21:26:31
举报
文章被收录于专栏:大猪的笔记大猪的笔记

添加django控制层view(controller)

在django中,controller叫做view,系统默认有一个views.py文件,可以在里面写。当然,也能自己新建多个文件。方便项目管理。 一个典型的view代码如下,选取合适的template,然后往里面绑定数据。

from django.template import loader
from django.http import HttpResponse
from models import BlogPost, Category
from tools import webTools

def index(request):
    # 准备模版
    t = loader.get_template("index.html")
    #省略 10000字,准备数据
    c = {'posts':finalPosts,"category":category,}
    # 覆写模版
    return HttpResponse(t.render(c))

还有一种比较简单的写法:

from django.shortcuts import render
def cms(request,tempCms):
    # 准备数据
    context = {}
    context['title'] = tempCms.title
    context['contentData'] = tempCms.contentData

    return render(request, 'cms/index.html', context)

当然django也提供了一种class_view的方式。代码类似下面:

class details(TemplateView):
    template_name = "blog/details.html"
    def get_context_data(self, **kwargs):
        context = super(details, self).get_context_data(**kwargs)

        # 省略10000字 准备相应数据
        context['blog'] = blog
        context['category'] = category
        context['title'] = blog.title
        return context

    @method_decorator(csrf_protect)
    def post(self, request, aid):
        # 省略10000字
        return redirect("/blog/details/"+aid)

这里就不详述了,因为我觉得这样更麻烦。 现在,我们就已经写好了一个view了。

建立Url 路由

有了template和view,也有了数据model,但是访问一个网址,需要对我们的浏览器地址进行路由解析,服务器才能调用到我们辛辛苦苦写好的view。 首先,打开PROJECTNAME/urls.py,使用include关键字为Blog建立跳转,方便管理。(当然你也可以把整个网站的映射都写在这里)

from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('blog.urls')),
]

然后,打开blog app 下的urls.py文件。填写实际的路由。

from django.conf.urls import url
from blog.views import index
urlpatterns = [
    url(r'^$', index),
]

现在,打开网站的:http://127.0.0.1:8000/blog/ 应该可以看到效果了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 添加django控制层view(controller)
  • 建立Url 路由
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档