python django 原生sql 获取数据的例子
如下所示:
node2:/django/mysite/blog#catviews.py
1,
#-*-coding:utf-8-*-
from__future__importunicode_literals
#fromdjango.shortcutsimportrender,render_to_response
from.modelsimport*
#Createyourviewshere.
fromdjango.httpimportHttpResponse
fromdjango.templateimportloader
importMySQLdb
defquery():
conn=MySQLdb.connect(
host='localhost',
port=3306,
user='root',
passwd='1234567',
db='tlcb',
)
cur=conn.cursor()
a=cur.execute("selecttitle,body,DATE_FORMAT(timestamp,'%Y~%m~%d%k.%i.%s')Afromblog_blogpost")
info=cur.fetchall()
returninfo
cur.close()
conn.close()
defarchive(req):
print'aaaaaaaaaaaaaaaaaaaaaaaaaaa'
printreq
printtype(req)
printreq.GET
print'#############################'
printreq.GET['aa']
printreq.GET['cc']
print'#############################'
print'aaaaaaaaaaaaaaaaaaaaaaaaaaa'
#getallblogpostobjects
posts=query()
printposts
printtype(posts)
#printblog_list
template=loader.get_template('archive.html')
context={
'posts':posts
}
print'------------------------------------------'
printHttpResponse(template.render(context,req))
print'------------------------------------------'
returnHttpResponse(template.render(context,req))
node2:/django/mysite/blog#
node2:/django/mysite/blog/templates#viarchive.html
node2:/django/mysite/blog/templates#
node2:/django/mysite/blog/templates#
node2:/django/mysite/blog/templates#
node2:/django/mysite/blog/templates#catarchive.html
{%extends"base.html"%}
{%blockcontent%}
{%forpostinposts%}
{{post.0}}
{{post.1|date:"1,FjS"}}
{{post.2}}
{%endfor%}
{%endblock%}
(('dd','ddd','2017~11~248.31.42'),('66666666','66666','2017~11~248.35.25'),('777777777','77777777777','2017~11~271.46.15'))
在自定义model方法和模块级方法里,你可以自由的执行自定义SQL语句.对象django.db.connection表示当前的数据库连接.调用connection.cursor()得到一个游标对象.然后调用cursor.execute(sql,[params])``以执行SQL语句,使用``cursor.fetchone()或cursor.fetchall()得到结果集.下面是一个例子:
defmy_custom_sql(self):
fromdjango.dbimportconnection
cursor=connection.cursor()
cursor.execute("SELECTfooFROMbarWHEREbaz=%s",[self.baz])
row=cursor.fetchone()
returnrow
如果你的SQL语句改变了数据库中的数据--比如你使用了DELETE或UPDATE语句.你需要调用connection.commit()来使你的修改生效.
例子:
defmy_custom_sql2(self):
fromdjango.dbimportconnection
cursor=connection.cursor()
cursor.execute("DELETEFROMbarWHEREbaz=%s",[self.baz])
connection.commit()
以上这篇pythondjango原生sql获取数据的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。