重新加载所有 django url 文件而不重新启动服务器
我需要更改站点中的网址而不重新加载服务器。
使用:Django 4.0.2
with open('settings.json', 'r+') as f:
data = json.load(f)
if data['urls']['posts']["type"] != 'Custom':
if data['urls']['posts']["type"] == 'Name':
urlpatterns.append(path('<slug:slug>/', details))
if data['urls']['posts']["type"] == 'Id':
urlpatterns.append(path('<int:pk>/', details))
因此,如果参数 type 发生变化,django 不会看到这一点,因为 urls.py 仅在服务器重新加载时运行
也许我们可以使服务器重新加载,但肯定不能手动 所以我用了这个:
import sys
from django.conf import settings
def reload_urlconf(urlconf=None):
if urlconf is None:
urlconf = settings.ROOT_URLCONF
if urlconf in sys.modules:
reload(sys.modules[urlconf])
我有一个错误:
未解析的引用“重新加载”
I need to change my urls in site without reloading server.
Using: Django 4.0.2
with open('settings.json', 'r+') as f:
data = json.load(f)
if data['urls']['posts']["type"] != 'Custom':
if data['urls']['posts']["type"] == 'Name':
urlpatterns.append(path('<slug:slug>/', details))
if data['urls']['posts']["type"] == 'Id':
urlpatterns.append(path('<int:pk>/', details))
So if param type change, django don't see that, cause urls.py runs only on server reload
Probably we can make server reload, but for sure not manualy
So i used this:
import sys
from django.conf import settings
def reload_urlconf(urlconf=None):
if urlconf is None:
urlconf = settings.ROOT_URLCONF
if urlconf in sys.modules:
reload(sys.modules[urlconf])
I had an error:
Unresolved reference 'reload'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论