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

来源:互联网 发布:手机诊断软件超级兔子 编辑:程序博客网 时间:2024/06/07 14:18
node2:/django/mysite#cat query_mysql.py # !/usr/bin/env python# -*- coding: utf-8 -*-from django.db import connection,transactionimport osos.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 rowa=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.settingsnode2:/django/mysite/blog#node2:/django/mysite/blog#cat query_mysql.py # !/usr/bin/env python# -*- coding: utf-8 -*-from django.db import connection,transactionimport osimport sysprojectpath = '/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 rowa=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'>