簡體   English   中英

無法將 Django 連接到 SQL 服務器

[英]Cannot connect Django to SQL server

這是我在這里的第一個帖子,如果有問題請見諒。

我正在 Django 中創建一個 CRM sorta 應用程序,並嘗試使用 pyodbc 連接到 MSSQL 數據庫。 我設法連接,Django 甚至創建了一些表 dbo.django_migrations 和 dbo.django_content_type (這是空白的)。 但是當我運行時,我得到了很多錯誤:

 Traceback (most recent call last): File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner response = get_response(request) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\views\generic\base.py", line 70, in view return self.dispatch(request, *args, **kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper return bound_method(*args, **kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\views\decorators\debug.py", line 89, in sensitive_post_parameters_wrapper return view(request, *args, **kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\allauth\account\views.py", line 146, in dispatch return super(LoginView, self).dispatch(request, *args, **kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\allauth\account\views.py", line 69, in dispatch if request.user.is_authenticated and app_settings.AUTHENTICATED_LOGIN_REDIRECTS: File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\utils\functional.py", line 246, in inner self._setup() File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\utils\functional.py", line 382, in _setup self._wrapped = self._setupfunc() File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\auth\middleware.py", line 23, in <lambda> request.user = SimpleLazyObject(lambda: get_user(request)) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\auth\middleware.py", line 11, in get_user request._cached_user = auth.get_user(request) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\auth\__init__.py", line 177, in get_user user_id = _get_user_session_key(request) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\auth\__init__.py", line 60, in _get_user_session_key return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY]) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\sessions\backends\base.py", line 65, in __getitem__ return self._session[key] File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\sessions\backends\base.py", line 238, in _get_session self._session_cache = self.load() File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\sessions\backends\db.py", line 43, in load s = self._get_session_from_db() File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\contrib\sessions\backends\db.py", line 32, in _get_session_from_db return self.model.objects.get( File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\manager.py", line 85, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\query.py", line 431, in get num = len(clone) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\query.py", line 262, in __len__ self._fetch_all() File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\query.py", line 1324, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\query.py", line 51, in __iter__ results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1169, in execute_sql cursor.execute(sql, params) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\backends\utils.py", line 98, in execute return super().execute(sql, params) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\backends\utils.py", line 66, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers return executor(sql, params, many, context) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\utils.py", line 90, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "c:\Users\thardt\Documents\Web-Development\employeeweb\venv\lib\site-packages\sql_server\pyodbc\base.py", line 553, in execute return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid object name 'django_session'. (208) (SQLExecDirectW); [42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Statement(s) could not be prepared. (8180)") [13/Apr/2021 16:36:31] "GET / HTTP/1.1" 500 203174

我真的不知道我做錯了什么。 我已經閱讀了無數有類似問題的線程,但似乎沒有任何幫助。

我的設置.py:

 DATABASES = { 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': 'Employee_Database_Test', 'USER': 'xxxx', 'PASSWORD': 'xxxx', 'HOST': 'ss-sql-02', 'PORT': '1433', 'OPTIONS': { 'driver': 'ODBC Driver 17 for SQL Server', }, }, # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } }

所以,經過大量的抓撓......我已經將 Django 從 3.2 降級到 3.0,將 Allauth 降級到 0.42.0。 運行所有遷移,神奇地一切正常。 我不確定問題的原因是什么,說實話,可能只是 Django 3.2 或 Allauth 和 pyobdc 之間的一些不兼容?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM