Django 跟 web server 有没有啥关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 跟 web server 有没有啥关系相关的知识,希望对你有一定的参考价值。
Django是一个WEB开发框架,可以用它来开发web项目,而web需要服务器来运行,比如常用的nginx,apache,uwsgi等,这些服务器仅负责运行程序(由django写的项目),用户请求会发送的服务器上,然后服务器请求django,django返回相应的结果给web服务器,然后返回给用户,web server 就是用户和程序之间的一道桥梁,用户不能直接接触到代码。所有的web项目都需要用一个web server来运行,用户才能用浏览器访问。 参考技术A 可以把Django当作应用服务器,Web服务器就是如Nginx、Apache这样的,Web服务器收到HTTP Web请求,把请求数据以一定的协议传递给应用服务器,应用服务器处理请求给出响应数据,Web服务器收到响应,再把响应返回给前端浏览器,这里面Web服务器处理做中间层还可以做静态文件服务器、反向代理负载均衡等工作。没有名为 sql_server.pyodbc.base 的模块
【中文标题】没有名为 sql_server.pyodbc.base 的模块【英文标题】:No module named sql_server.pyodbc.base 【发布时间】:2015-12-21 02:46:29 【问题描述】:我想使用 SQL Server 作为 Django 的后端,但在调试 Web 项目时得到了这个。 'sql_server.pyodbc' 不是可用的数据库后端。错误是:。
带有 Django (1.7)、pyodbc(3.0.10)、pywin32(218.3) 的 Python 环境 (Python 2.7)。这是我的 settings.py:
DATABASES =
'default':
'ENGINE': 'sql_server.pyodbc',
'NAME': 'DatabaseName',
'USER': 'user',
'PASSWORD': 'pwd',
'HOST': '127.0.0.1',
'PORT': '',
'OPTIONS':
'driver': 'SQL Server Native Client 11.0',
'server': 'ServerName',
'MARS_Connection': True,
'dsn': 'MSSQL-PYTHON',
,
【问题讨论】:
【参考方案1】:您尚未安装具有所需数据库后端的软件包。
做:
pip install django-pyodbc
pip install django-pyodbc-azure
查看doc 和this one。
第二个链接中的数据库设置示例:
DATABASES =
'default':
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydb',
'USER': 'user@myserver',
'PASSWORD': 'password',
'HOST': 'myserver.database.windows.net',
'PORT': '',
'OPTIONS':
'driver': 'SQL Server Native Client 11.0',
,
,
#set this to `False` if you want to turn off pyodbc's connection pooling:
DATABASE_CONNECTION_POOLING = False
【讨论】:
我按照你的建议安装了 django-pyodbc,虽然已经有一个 pyodbc。它给了我同样的错误。 您似乎仍然没有得到正确的后端包。你试过this one 吗? 您提供的关于 django-pyodbc-azure 1.8.3.0 的链接实际上解决了这个问题。不知何故,当我安装它时,它还将我的 Django 更新到了 1.8.4。所以我想匹配版本真的很重要。请更新您的答案,以便我接受。非常感谢! 看来django-pyodbc-azure (1.8.3.0) 只提供sql_server.pyodbc.base。如果我删除 pyodbc 并单独留下 django-pyodbc-azure,它会给我不同的错误。我需要 pyodbc (3.0.10) 和 django-pyodbc-azure (1.8.3.0) 如果您不想将 Django 1.9 更新到 1.10,请不要安装最新版本的 django-pyodbc-azure。以下是我安装的版本:pyodbc==3.0.10、django-pyodbc==1.0.1、django-pyodbc-azure==1.9.6 ... 干杯!【参考方案2】:看看this link:
DATABASES =
'default':
'NAME': 'my_database',
'ENGINE': 'sqlserver_ado',
'HOST': 'dbserver\\ss2008',
'USER': '',
'PASSWORD': '',
假设您可以将 SQL Server 与 Django MSSQL 一起使用(上面的链接)。您可能想查看 [Django 文档] 以了解 django “本机”支持的其他数据库支持。 (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)
【讨论】:
以上是关于Django 跟 web server 有没有啥关系的主要内容,如果未能解决你的问题,请参考以下文章
Flask最强攻略 - 跟DragonFire学Flask - 第一篇 你好,我叫Flask