django - 如何使用 django&postgre 在家里安装服务器
问题描述
请帮我将我的家用电脑设置为服务器(Windows 10 + Python + Django + Postgre SQL + Anaconda)
网上有很多关于如何设置服务器的说明,令人惊讶的是,许多说明彼此不同。我完全没有设置服务器的经验。可能,我在某个地方犯了一个愚蠢的错误,我 3 天都无法识别。我搞不清楚了。我相信最有用的说明是这些(它们是完整的和新的): https://www.codementor.io/aswinmurugesh/deploying-a-django-application-in-windows-with-apache-and-mod_wsgi-uhl2xq09e https ://ostrokach.gitlab.io/post/apache-django-anaconda/
我按照说明成功下载了必要的模块,安装了 Wamp,按照指南中的说明进行了更改并启动了它。我现在看到的:Wamp 图标发出绿色光。当我加载本地主机时,页面会无休止地加载但不会加载。
Wamp 错误日志显示如下:[Fri Oct 11 14:50:33.823752 2019] [core:notice] [pid 1364:tid 808] AH00094: Command line: 'c:\wamp64\bin\apache\apache2.4.39\bin\ httpd.exe -d C:/wamp64/bin/apache/apache2.4.39' [Fri Oct 11 14:50:33.840681 2019] [mpm_winnt:notice] [pid 1364:tid 808] AH00418: Parent: Created child process 15052 [ 2019 年 10 月 11 日星期五 14:50:34.981629] [mpm_winnt:notice] [pid 15052:tid 800] AH00354:子级:启动 64 个工作线程。
- 项目名称:turiumasina
- 路径 D:/Users/PycharmProjects/turiumasina/
wsgi:D:/Users/PycharmProjects/turiumasina/turiumasina/wsgi_windows.py 的路径(我将 wsgi 重命名为 wsgi_windows,设置文件在 turiumasina/turiumasina/)
我复制了 mod_wsgi-express 命令生成的输出并将其粘贴到 C:\wamp64\bin\apache\apache\conf\httpd.conf 的末尾
我的 httpd-vhosts.conf
ServerName localhost WSGIPassAuthorization On ErrorLog "logs/turiumasina.error.log" CustomLog "logs/turiumasina.access.log" 结合 WSGIScriptAlias / "D:/Users/PycharmProjects/turiumasina/turiumasina/wsgi_windows.py"
<Directory "D:/Users/PycharmProjects/turiumasina">
<Files wsgi_windows.py>
Require all granted
</Files>
</Directory>
Alias /static "D:/Users/PycharmProjects/turiumasina/static"
<Directory "D:/Users/PycharmProjects/turiumasina/static">
Require all granted
</Directory>
wsgi_windows.py
import os import sys import site from django.core.wsgi import get_wsgi_application site.addsitedir("C:/users/.conda/envs/turiumasina/Lib/site-packages") sys.path.append('D:/Users/PycharmProjects/turiumasina') sys.path.append('D:/Users/PycharmProjects/turiumasina/turiumasina') os.environ['DJANGO_SETTINGS_MODULE'] = 'turiumasina.settings' os.environ.setdefault("DJANGO_SETTINGS_MODULE", "turiumasina.settings") application = get_wsgi_application()
我生成了“静态”文件夹,在settings.py中写了一行:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
如果我python manage.py runserver
通过 pycharm 进入,我可以通过浏览器(http://127.0.0.1:8000/)查看我的网站。Wamp 图标发出绿色光。当我加载本地主机时,页面会无休止地加载但不会加载。
我希望我的网站不仅对我可见,而且通过输入我的外部 IP 对互联网用户可见。
如果您需要,我可以将整个项目和项目设置发送给您
解决方案
我会完全摆脱 WAMP,如果您不使用 PHP 或 MySql,我不明白为什么需要它。
如果您只需要通过本地网络播放/调试 Django 应用程序,只需运行 ./manage.py runserver 0.0.0.0:8000 (或任何其他端口)。确保您的 Windows 防火墙允许传入端口的连接。
要连接到它,您需要计算机的实际 IP 而不是“0.0.0.0:8000”。在命令提示符下键入“ipconfig”以查看您的实际 IP,然后连接到 Your_actual_IP:8000
如果您需要比内置 Django 服务器更可靠的东西(在非调试模式下运行),那么您可以安装 Waitress(https://docs.pylonsproject.org/projects/waitress/en/latest/)。
推荐阅读
- docker - Docker 量角器运行以 E/launcher 结束 - 进程退出并出现错误代码 135
- javascript - 如何管理包含主题数据的组件的单元测试快照?
- python-3.x - 两个相似的脚本创建不同的列表
- egl - EGL:EGL_SURFACE_TYPE 并渲染到纹理
- node.js - 在选择提示中修改选择验证 - Bot Framework
- python - 将来自不同数据框的聚合添加为列
- java - 当我尝试从不同的类调用方法时,空对象引用
- python - 如何解释 python 字节数组中的空格
- c# - JSON.NET 反序列化:类型不匹配时忽略属性
- pandas - 条件 If 语句:如果行中的值以字符串中的字母开头……设置具有相应值的另一列