zoukankan      html  css  js  c++  java
  • request在模板中获取当前url

    使用request在模板中获取当前url

    在模板中你可以使用{{ request.path }}获取当前url,如果要获取带querystring的完整url你可以使用{{ request.get_full_path }}。如果你要获取完整绝对路径,你可以使用 {{ request.build_absolute_uri }}。具体使用方法如下所示:

    https://jackeygao.io/search/?keyword=django

    Method

    Output

    request.path

    /search/

    request.get_full_path

    search/?keyword=django

    request.build_absolute_uri

    https://jackeygao.io/search/?keyword=django

    Tip 1. 使用F方法更新一个对象或多个对象字段

    通常情况下我们在更新数据时需要先从数据库里将原数据取出后放在内存里,然后编辑某些字段或属性,最后提交更新数据库。使用F方法则可以帮助我们避免将所有数据先载入内存,而是直接生成SQL语句更新数据库。

    假如我们需要对所有产品的价格涨20%,我们通常做法如下。当产品很少的时候,对网站性能没影响。但如果产品数量非常多,把它们信息全部先载入内存会造成很大性能浪费。

    products = Product.objects.all()
    for product in products:
    product.price *= 1.2
    product.save()
    使用F方法可以解决上述问题。我们直接可以更新数据库,而不必将所有产品载入内存。

    from django.db.models import F

    Product.objects.update(price=F('price') * 1.2)
    我们也可以使用F方法更新单个对象的字段,如下所示:

    product = Product.objects.get(pk=5009)
    product.price = F('price') * 1.2
    product.save()
    但值得注意的是当你使用F方法对某个对象字段进行更新后,需要使用refresh_from_db()方法后才能获取最新的字段信息(非常重要!)。如下所示:

    product.price = F('price') + 1
    product.save()
    print(product.price) # <CombinedExpression: F(price) + Value(1)>
    product.refresh_from_db()
    print(product.price) # Decimal('13.00')
    ---------------------
    作者:大江狗
    来源:CSDN
    原文:https://blog.csdn.net/weixin_42134789/article/details/93600899
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    带参的方法
    类的无参方法
    类和对象
    关于线程间的通信的几个解决事例
    一个简单的邮件发送
    关于process
    关于java的static语句块
    关于struts2拦截器获取页面参数
    hexo github pages 首页不展示,出现代码怎么办
    使用Hexo搭建个人博客(三)
  • 原文地址:https://www.cnblogs.com/anthony-wang0228/p/11172769.html
Copyright © 2011-2022 走看看