您的位置:首页 > 数据库 > SQL

django 在自己app下编写自定义sql

2017-12-11 11:13 441 查看
node2:/django/mysite#cat query_mysql.py
# !/usr/bin/env python
# -*- coding: utf-8 -*-
from django.db import connection,transaction
import os

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
class connect_mysql(object):
def __init__(self, title, body):
self.title = title
self.body = body
def my_custom_sql(self):
cursor = connection.cursor()
cursor.execute("SELECT * FROM blog_blogpost WHERE title = %s and body=%s", [self.title,self.body])
row = cursor.fetchall()
return row
a=connect_mysql('中国','台湾')
for i in a.my_custom_sql():
print str(i).decode('unicode_escape')
print type(i)

node2:/django/mysite#python query_mysql.py
(2L, u'中国', u'台湾', datetime.datetime(2017, 11, 16, 1, 56, 56))
<type 'tuple'>
(4L, u'中国', u'台湾', datetime.datetime(2017, 11, 25, 19, 3, 55))
<type 'tuple'>

在这个目录下可以执行

去blog 目录下执行:
node2:/django/mysite/blog#python query_mysql.py
Traceback (most recent call last):
File "query_mysql.py", line 17, in <module>
for i in a.my_custom_sql():
File "query_mysql.py", line 12, in my_custom_sql
cursor = connection.cursor()
File "/usr/local/python27/lib/python2.7/site-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/python27/lib/python2.7/site-packages/django/db/utils.py", line 208, in __getitem__
self.ensure_defaults(alias)
File "/usr/local/python27/lib/python2.7/site-packages/django/db/utils.py", line 176, in ensure_defaults
conn = self.databases[alias]
File "/usr/local/python27/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/usr/local/python27/lib/python2.7/site-packages/django/db/utils.py", line 156, in databases
self._databases = settings.DATABASES
File "/usr/local/python27/lib/python2.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/usr/local/python27/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/python27/lib/python2.7/site-packages/django/conf/__init__.py", line 110, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/local/python27/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named mysite.settings

node2:/django/mysite/blog#
node2:/django/mysite/blog#cat query_mysql.py
# !/usr/bin/env python
# -*- coding: utf-8 -*-
from django.db import connection,transaction
import os
import sys
projectpath = '/django/mysite'
if projectpath not in sys.path:   sys.path.append(projectpath)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
class connect_mysql(object):
def __init__(self, title, body):
self.title = title
self.body = body
def my_custom_sql(self):
cursor = connection.cursor()
cursor.execute("SELECT * FROM blog_blogpost WHERE title = %s and body=%s", [self.title,self.body])
row = cursor.fetchall()
return row
a=connect_mysql('中国','台湾')
for i in a.my_custom_sql():
print str(i).decode('unicode_escape')
print type(i)

node2:/django/mysite/blog#python query_mysql.py
(2L, u'中国', u'台湾', datetime.datetime(2017, 11, 16, 1, 56, 56))
<type 'tuple'>
(4L, u'中国', u'台湾', datetime.datetime(2017, 11, 25, 19, 3, 55))
<type 'tuple'>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: