django 在自己app下編寫自定義sql
阿新 • • 發佈:2019-02-05
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'>