2017-05-01 10 views
1

私はDjango webappで作業しています。このアプリケーションではオンラインデータベースが必要です。私の教員が、SQLデータベースを含むいくつかのMicrosoft Azureサービスを使用することにアクセスできるようになります。今、Azure SQLデータベースをDjangoプロジェクトに接続したいのですが、これを動作させることはできません。しかし私は、settings.py収率でこのエラーを同じパラメータを使用して、PyCharmのデータソースビューを介してデータベースに接続することができますMicrosoft Azure SQLサーバをdjango webappに接続するには

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03846270> 
Traceback (most recent call last): 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 227, in wrapper 
fn(*args, **kwargs) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run 
autoreload.raise_last_exception() 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 250, in raise_last_exception 
six.reraise(*_exception) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\six.py", line 685, in reraise 
raise value.with_traceback(tb) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\utils\autoreload.py", line 227, in wrapper 
fn(*args, **kwargs) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\__init__.py", line 27, in setup 
apps.populate(settings.INSTALLED_APPS) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\registry.py", line 108, in populate 
app_config.import_models() 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\apps\config.py", line 202, in import_models 
self.models_module = import_module(models_module_name) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module 
return _bootstrap._gcd_import(name[level:], package, level) 
File "<frozen importlib._bootstrap>", line 978, in _gcd_import 
File "<frozen importlib._bootstrap>", line 961, in _find_and_load 
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked 
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked 
File "<frozen importlib._bootstrap_external>", line 678, in exec_module 
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\auth\models.py", line 4, in <module> 
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\contrib\auth\base_user.py", line 52, in <module> 
class AbstractBaseUser(models.Model): 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\base.py", line 124, in __new__ 
new_class.add_to_class('_meta', Options(meta, app_label)) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\base.py", line 330, in add_to_class 
value.contribute_to_class(cls, name) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\models\options.py", line 214, in contribute_to_class 
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\__init__.py", line 33, in __getattr__ 
return getattr(connections[DEFAULT_DB_ALIAS], item) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\utils.py", line 212, in __getitem__ 
conn = backend.DatabaseWrapper(db, alias) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\sqlserver_ado\base.py", line 184, in __init__ 
super(DatabaseWrapper, self).__init__(*args, **kwargs) 
File "C:\Users\kairy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\db\backends\base\base.py", line 96, in __init__ 
self.client = self.client_class(self) 
TypeError: 'NoneType' object is not callable 

settings.pyのデータベース・オブジェクトは、この(機密情報が出て編集した)のようになります。

DATABASES = { 
    'default': { 
     "ENGINE": "sqlserver_ado", 
     'NAME': [databasename], 
     "HOST": "tcp:[resourcegroup].database.windows.net", 
     "PORT": "1433", 
     "USER": [[email protected]], 
     "PASSWORD": [password] 
    } 
} 

この設定に問題がありますか?私の経験パー

+0

あなたが使用しているdjangoのバージョンは?これは 'pip install django-pyodbc-azure'をインストールするコマンドですか? –

+0

'settings.py'の内容は' django-pyodbc-azure'の[example](https://github.com/michiya/django-pyodbc-azure#example)のようには見えません。あなたの設定を変更するには、 'tcp:'を使わない 'HOST'や、Azureのポータルで見ることのできるサーバのホスト名を' [resourcegroup] 'で指定してください。懸念や更新は、私に知らせてください。 –

答えて

0

、あなたはDjangoのWebアプリケーションからのAzure SQLデータベースを接続する場合は、ベストプラクティスの簡単な方法は、それがPythonパッケージpyodbc & django-pyodbc-azureをインストールし、以下のように正しくジャンゴのsettings.pyファイルを設定するには、django-pyodbc-azure READMEに従ってくださいです。

DATABASES = { 
    'default': { 
     'ENGINE': 'sql_server.pyodbc', 
     'NAME': 'mydb', 
     'USER': '[email protected]', 
     'PASSWORD': 'password', 
     'HOST': 'myserver.database.windows.net', 
     'PORT': '', 
     'OPTIONS': { 
      'driver': 'ODBC Driver 13 for SQL Server', 
     }, 
    }, 
} 
+0

私たちは、デフォルトで提供されているSQLiteデータベースをそのまま使用することにしました。なぜなら、ソフトウェアのコンセプトはより確かなものだったからです。間違ったデータベースコネクタを使用していました。助けてくれてありがとう! –