搜索
首页后端开发Python教程使用 Ngrok 将您的 Django 项目公开到 Internet

Exposing Your Django Project to the Internet Using Ngrok

您在 Django 开发时遇到过这个错误吗?

You're accessing the development server over HTTPS, but it only supports HTTP.

如果您习惯通过 http://localhost:8000 访问开发服务器,此错误可能会令人沮丧 - 特别是在更新强制 HTTPS 连接的防火墙规则之后。有一个更好的解决方案,而不是恢复安全设置:Ngrok。

什么是恩格罗克?

Ngrok 是一个功能强大的工具,可以将本地应用程序公开到互联网,而无需复杂的网络配置(例如端口转发或 DNS 设置)。 在其官方文档中阅读有关 ngrok 的更多信息。

先决条件

在我们开始之前,请确保您已经:

  • Django 项目设置
  • 已安装 Python 3.x
  • 已配置的虚拟环境
  • ngrok 帐户(免费套餐即可)

分步设置

1.安装pyngrok包

在我们安装任何内容之前,请激活您的虚拟环境,然后安装 ngrok 的 Python 包装器:

pip install pyngrok
pip freeze > requirements.txt

2.配置Django设置

将 ngrok 的域名添加到项目的 settings.py 中允许的主机列表中:

# settings.py
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '.ngrok-free.app']

这允许 Django 接受来自 ngrok 动态 URL (*.ngrok-free.app) 的请求。即使我们无法预测 URL 的随机字符串部分,Django 也不会生成任何错误。

3.启动你的Django服务器

在项目的根目录中:

python manage.py runserver

注意:Windows 用户可以使用 py manage.py runserver

4. 验证并启动 Ngrok

  • 在 ngrok.com 注册
  • 从仪表板复制您的身份验证令牌
  • 在新的终端窗口中,验证 ngrok:
ngrok config add-authtoken YOUR_TOKEN_HERE

启动隧道:

ngrok http 8000

确保 ngrok 和 Django 服务器端口相同。默认端口通常为 8000。

您应该看到类似于以下内容的输出:

Account                       Your Name (Plan: Free)
Version                       3.19.0
Region                       United States (us)
Latency                      Your Latency
Web Interface                An Unsecure HTTP address
Forwarding                   https://[random-id].ngrok-free.app -> http://localhost:8000

5. 测试您的设置

仅使用控制台窗口上的 ngrok 提供的 HTTPS URL 访问您的 Django 应用程序。它看起来类似于以下内容:

https://[random-id].ngrok-free.app

ngrok 的其他用例

Ngrok 不仅仅用于解决 HTTPS 问题。它的价值在于:

  • 快速互联网曝光:即时分享您本地的开发工作
  • Webhook 测试:测试需要公共 URL 的集成
  • 客户端预览:让客户端无需部署即可预览工作
  • 跨设备测试:轻松在多个设备上测试您的应用

故障排除技巧

  • 检查您的 ngrok 身份验证令牌是否配置正确
  • 启动 ngrok 之前验证您的 Django 服务器是否正在运行
  • 监控 ngrok 接口的请求日志和错误

相关资源

想了解更多有关 Web 开发的知识吗?看看我的其他文章:

  • 了解服务质量 (QoS)
  • 制作响应式网站的艺术

感谢您抽出时间并祝您编码愉快!在评论部分分享您的项目。

以上是使用 Ngrok 将您的 Django 项目公开到 Internet的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
什么是Python Switch语句?什么是Python Switch语句?Apr 30, 2025 pm 02:08 PM

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中有什么例外组?Python中有什么例外组?Apr 30, 2025 pm 02:07 PM

Python 3.11中的异常组允许同时处理多个异常,从而改善了并发场景和复杂操作中的错误管理。

Python中的功能注释是什么?Python中的功能注释是什么?Apr 30, 2025 pm 02:06 PM

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。

Python的单位测试是什么?Python的单位测试是什么?Apr 30, 2025 pm 02:05 PM

本文讨论了Python中的单位测试,其好处以及如何有效编写它们。它突出显示了诸如UNITSEST和PYTEST等工具进行测试。

Python中的访问说明符是什么?Python中的访问说明符是什么?Apr 30, 2025 pm 02:03 PM

文章讨论了Python中的访问说明符,这些说明符使用命名惯例表明班级成员的可见性,而不是严格的执法。

Python中的__Init __()是什么?自我如何在其中发挥作用?Python中的__Init __()是什么?自我如何在其中发挥作用?Apr 30, 2025 pm 02:02 PM

文章讨论了Python的\ _ \ _ Init \ _ \ _()方法和Self在初始化对象属性中的作用。还涵盖了其他类方法和继承对\ _ \ _ Init \ _ \ _()的影响。

python中的@classmethod,@staticmethod和实例方法有什么区别?python中的@classmethod,@staticmethod和实例方法有什么区别?Apr 30, 2025 pm 02:01 PM

本文讨论了python中@classmethod,@staticmethod和实例方法之间的差异,详细介绍了它们的属性,用例和好处。它说明了如何根据所需功能选择正确的方法类型和DA

您如何将元素附加到Python数组?您如何将元素附加到Python数组?Apr 30, 2025 am 12:19 AM

Inpython,YouAppendElementStoAlistusingTheAppend()方法。1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境