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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM