extra
用来表达更复杂的sql语句!!!!!
extra可以指定一个或多个 参数,例如 select, where or tables. 这些参数都不是必须的,但是你至少要使用一个!要注意这些额外的方式对不同的数据库引擎可能存在移植性问题.(因为你在显式的书写SQL语句),除非万不得已,尽量避免这样做
queryResult=models.Article
.objects.extra(select={'is_recent': "create_time > '2017-09-05'"})
in sqlite: article_obj=models.Article.objects
.filter(nid=1)
.extra(select={"standard_time":"strftime('%%Y-%%m-%%d',create_time)"}) #两个百分号是为了保留那个%s ,因为 先格式化
.values("standard_time","nid","title") print(article_obj) # <QuerySet [{'title': 'MongoDb 入门教程', 'standard_time': '2017-09-03', 'nid': 1}]>
原生SQL
原生SQL
from django.db import connection, connections
cursor = connections['default1'].cursor()
cursor = connection.cursor()
cursor.execute("""SELECT * from auth_user where id = %s""", [1])
row = cursor.fetchone()