对处理首页的视图函数来说,虽然其处理的对象一个是文章,另一个是帖子,但是其处理的过程是非常类似的。首先是从数据库取出文章或者帖子列表,然后将这些数据传递给模板并渲染模板。...指定这个视图渲染的模板。 context_object_name。指定获取的模型列表数据保存的变量名。这个变量会被传递给模板。...如果还是有点难以理解,不妨将类视图的代码和 index 视图函数的代码对比一下: blog/views.py def index(request): post_list = Post.objects.all...好在将类视图转换成函数视图非常简单,只需调用类视图的 as_view() 方法即可(至于 as_view 方法究竟是如何将一个类转换成一个函数的目前不必关心,只需要在配置 URL 模式是调用 as_view...将 category 视图函数改写为类视图 category 视图函数的功能也是从数据库中获取文章列表数据,不过其和 index 视图函数不同的是,它获取的是某个分类下的全部文章。
对处理首页的视图函数来说,虽然其处理的对象一个是文章,另一个是帖子,但是其处理的过程是非常类似的:首先是从数据库取出文章或者帖子列表,然后将这些数据传递给模板并渲染模板。...template_name:指定这个视图渲染的模板。 context_object_name:指定获取的模型列表数据保存的变量名,这个变量会被传递给模板。...如果还是有点难以理解,不妨将类视图的代码和 index 视图函数的代码对比一下: blog/views.py def index(request): post_list = Post.objects.all...好在将类视图转换成函数视图非常简单,只需调用类视图的 as_view() 方法即可(至于 as_view 方法究竟是如何将一个类转换成一个函数的目前不必关心,只需要在配置 URL 模式是调用 as_view...将 category 视图函数改写为类视图 category 视图函数的功能也是从数据库中获取文章列表数据,不过其和 index 视图函数不同的是,它获取的是某个分类下的全部文章。
这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。...': post_list}) 主页视图函数中我们通过 Post.objects.all() 获取全部文章,而在我们的归档和分类视图中,我们不再使用 all 方法获取全部文章,而是使用 filter 来根据条件过滤...两个括号括起来的地方是两个命名组参数,Django 会从用户访问的 URL 中自动提取这两个参数的值,然后传递给其对应的视图函数。...# 因此我们传了三个模板变量给 detail.html, # 一个是文章(Post),一个是评论列表,一个是表单 form # 注意这里我们用到了 post.comment_set.all...12.7.显示评论内容 在 detail 视图函数我们获取了全部评论数据,并通过 comment_list 传递给了模板。
通过指定过程参数,调用程序可以将值传递给过程的主体。 如果将参数标记为 OUTPUT 参数,则过程参数还可以将值返回给调用程序。...一个过程最多可以有 2100 个参数,每个参数都有名称、数据类型和方向。 还可以为参数指定默认值(可选)。 将值传递给参数 使用过程调用提供的参数值必须为常量或变量,不能将函数名称作为参数值。...下列示例演示如何将参数值传递给过程 uspGetWhereUsedProductID。 它们说明了如何将参数作为常量和变量进行传递,以及如何使用变量传递函数值。...END ELSE PRINT 'The prices for all products in this category exceed $'+ RTRIM(CAST(@ComparePrice
② 页面加载 django.views.decorators.http 里的装饰器可以基于请求的方法来限制对视图的访问。...require_GET() 只允许视图接受 GET 方法的装饰器。 require_POST() 只允许视图接受 POST 方法的装饰器。...require_safe() 只允许视图接受 GET 和 HEAD 方法的装饰器。 这些方法通常被认为是安全的。...可以将Queryset 转换成列表 # 并且将Queryset的模型对象(比如News()对象) 转换为字典 , 再转换成列表 # newses = list(News.objects.all...category_id = 0 , 说明没有传category_id 过去 newses = News.objects.all()[start:end] # 提取多条数据
Post.objects.all().order_by('-created_time') return render(request, 'blog/index.html', context={'...post_list': post_list}) 主页视图函数中我们通过 Post.objects.all() 获取全部文章,而在我们的归档和分类视图中,我们不再使用 all 方法获取全部文章,而是使用...两个括号括起来的地方是两个命名组参数,Django 会从用户访问的 URL 中自动提取这两个参数的值,然后传递给其对应的视图函数。..._404 # 引入 Category 类 from .models import Post, Category def category(request, pk): # 记得在开始部分导入...Category 类 cate = get_object_or_404(Category, pk=pk) post_list = Post.objects.filter(category
前言 在 iOS 中,对象间的交互模式大概有这几种:直接 property 传值、delegate、KVO、block、protocol、多态、Target-Action 等等,本文介绍的是一种基于 UIResponder...对象交互方式,简而言之,就是 通过在 UIResponder上挂一个 category,使得事件和参数可以沿着 responder chain 逐步传递。...对于那种 subviews 特别多,事件又需要层层传递的层级视图特别好用,但是,缺点也很明显,必须依赖于 UIResponder 对象。...一般的处理方法都是使用 代理、回调、属性传值,可是多层级的View会让整个流程非常痛苦和难于维护。 多层级View的UI事件处理有较好的方案,比如采用ReactiveCocoa、使用通知等等。...值得注意的是,这样的事件传递处理方法,最常见的Bug就是当前试图初始化后确实存在,但是没有加载到父视图上,才导致的方法无法触发。 参考文章
Post.objects.all().order_by('-created_time') return render(request, 'blog/index.html', context={...'post_list': post_list}) 主页视图函数中通过 Post.objects.all() 获取全部文章,而在归档和分类视图中,我们不再使用 all 方法获取全部文章,而是使用 filter...URL 和 detail 视图函数对应的 URL 是类似的,这在之前我们讲过,django 会从用户访问的 URL 中自动提取 URL 路径参数转换器 规则捕获的值,然后传递给其对应的视图函数..._404 # 引入 Category 类 from .models import Post, Category def category(request, pk): # 记得在开始部分导入...blog:category' category.pk %}">{{ category.name }} {% endfor %} ...
此外我们在创建文章时提到了通过 get 方法来获取数据,这里 all 方法和 get 方法的区别是:all 方法返回全部数据,是一个类似于列表的数据结构(QuerySet);而 get 返回一条记录数据...Django 在渲染这个模板的时候会根据我们传递给模板的变量替换掉这些变量。最终在模板中显示的将会是我们传递的值。...我们前面在视图函数 index 里给模板传了一个 post_list 变量,它里面包含着从数据库中取出的文章列表数据。...我们可以按照介绍过的方法修改静态文件的引入路径,但很快你会发现在任何页面都是需要引入这些静态文件,如果每个页面都要修改会很麻烦,而且代码都是重复的。...我们书写的博客文章内容存在 Post 的 body 属性里,回到我们的详情页视图函数,对 post 的 body 的值做一下渲染,把 Markdown 文本转为 HTML 文本再传递给模板: blog/
这个方法如下: // Getting all contacts of a category public List getContactsByCategoryId(int...new String[] { String.valueOf(categoryId) }, null, null, null, null); // iterate over all...由于类别的数目是动态变化的,我不可能为每个类别创建一个下游页面(而且这样也太麻烦了)。然而,我可以把类别信息传递给同一个下游页面,让该下游页面根据类别,进行不同的处理。...它使用了WebView视图元素来显示Web页面。...,我可以把网页加载入这个视图元素。
在视图函数调用flash()函数,传入消息内容,flash()函数把消息存储在session中,我们需要在模板中使用全局函数get_flashed_messages()获取消息并将它显示出来。...flash是基于session, 所以必须要设置秘钥 secret_key flash()函数源代码 message 消息内容 category 消息类别,可以不用传,默认缺省值”message” def...[t.Tuple[str, str]]]: """Pulls all flashed messages from the session and returns them....return [x[1] for x in flashes] return flashes 这个flash只能一个视图函数中取,只要有一个视图函数取过了,那其他视图函数就不能获取,本质是调用session.pop...(“_flash”) 但是在同一个视图函数里面可以无限的取值。
这些内容相对比较固定和独立,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取这些数据然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。...=True) def show_recent_posts(context, num=5): return { 'recent_post_list': Post.objects.all...{% endfor %} 由于 date_list 中的每个元素都是 Python 的 date 对象,所以可以引用 year 和 month 属性来获取年份和月份。...': Category.objects.all(), } _categories.html 的内容: 分类 {% for category in category_list %} <a href="#"
》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带的通用视图类替换之前写的视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图...get_object_or_404 from blog.models import Post # 获取相应模型下的全部数据 def home(request): post_list = Post.objects.all...(request, pk): category = get_object_or_404(Category, pk=pk) post_list = Post.objects.filter(..., 'markdown.extensions.codehilite', ]) return post # 返回一个字典,为模版变量字典,传递给相应的模版...def home(request): limit = 10 posts = Post.object.all() paginator = Paginator(posts, limit
我们遵循 Django 的规范写的一些 Python 代码,例如创建 Post、Category 类,然后通过运行数据库迁移命令将这些代码反应到数据库。...# 因此我们传了三个模板变量给 detail.html, # 一个是文章(Post),一个是评论列表,一个是表单 form # 注意这里我们用到了 post.comment_set.all...例如 Post.objects.filter(category=cate) 也可以等价写为 cate.post_set.all()。...我们可以看到评论表单和评论列表是位于文章详情页面的,处理文章详情页面的视图函数是 detail,相应地需要更新 detail,让它生成表单和从数据库获取文章对应的评论列表数据,然后传递给模板显示: blog...显示评论内容 在 detail 视图函数我们获取了全部评论数据,并通过 comment_list 传递给了模板。
之前的事件监听方式,是将新建的OnClickListener对象传递给视图元素。实际上,OnClickListener只是一个接口(interface)。...至于每个条目的具体内容和显示格式,将在下面的CategoryActivity中说明。 使用ArrayAdapter 现在,有了视图,我们要考虑数据。...它可以为每个数据元素赋予相同的视图格式。将ListView与ArrayAdapter绑定后,安卓就可以动态的调整条目了。 ?...继承ArrayAdapter 我上面从Category类型的表中,提取出一个字符串类型的表,作为数据传递给ArrayAdapter。...我通过编写getView()方法,来说明每个Category对象和对应条目视图的绑定方式。
这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文章详情一样,从视图函数中获取然后传递给模板,则每个页面对应的视图函数里都要写一段获取这些内容的代码,这会导致很多重复代码。...templatetags/blog_tags.py from ..models import Post def get_recent_posts(num=5): return Post.objects.all...register = template.Library() @register.simple_tag def get_recent_posts(num=5): return Post.objects.all...(): # 别忘了在顶部引入 Category 类 return Category.objects.all() 尽管侧边栏有 4 项内容(还有一个标签云),但是这里我们只实现最新文章、归档和分类数据的显示...as category_list %} {% for category in category_list %} {{ category.name
详细介绍 ''' 1 设置flash 1.1 flash("要传递的值",category="分类的名称"),如果不传默认是message 本质:session['_flash'] 2取...flash设置的值我们用get_flashed_messages 2.1 get_flashed_messages(with_categories=False, category_filter=())..., 2.1.1如果不传递 category_filter,取出上面存储的所有分类传递的值 2.1.2如果不传with_categories就只取值,不取分类的名字,如果传值,就获取 分类名和分类值...3 这个flash只能一个视图函数中取,只要有一个视图函数取过了,那其他视图函数就不能获取 本质:session.pop("_flash") 3.1 但是在同一个视图函数里面可以无限的取值
假设用户要访问某篇文章,它会自动解析 blog:detail 这个视图函数对应的 url,并且把 article.pk(文章的主键)传递给detail视图函数,details就是我们在blog/urls.py...] # 新增 get_absolute_url 方法 def get_absolute_url(self): # 这里 reverse 解析 blog:detail 视图函数对应的...'] = Category.objects.all().order_by('name') # 调用 archive 方法,把获取的时间列表插入到 context 上下文中以便在模板中渲染...index.html" context_object_name = "article_list" def get_queryset(self): # url里的cate_id传递给...,用于在页面显示所有分类,按照名字排序 kwargs['category_list'] = Category.objects.all().order_by('name')
解决办法:当UIScrollView 或 UIImageView 截获touch事件后,让其传递下去即可(就是传递给其父视图UIView) 可以通过写UIScrollView 或 UIImageView...的category 重写touchesBegan: withEvent: / touchesMoved: withEvent: / touchesEnded: withEvent: 等来实现 ////...All rights reserved.
领取专属 10元无门槛券
手把手带您无忧上云