utsavjari
(Utsav)
September 11, 2025, 2:03pm
1
Hi, I’m trying to integrate a simple “Hello World” plugin where the /hello/ path should just display “Hello World.”
I followed this documentation: How to create a plugin app — edx-django-utils 8.0.0 documentation
I first created a plugin using the cookiecutter template, then added a function in views.py that returns “Hello World,” and mapped it to the /hello/ route in urls.pyof my plugin. I also updated setup.py to include the entry point, added the plugin config, and then installed the repo inside the LMS container using pip install.
Here’s my plugin repo: GitHub - zeuslearning-utsav-jariwala/hello-world-plugin
However, when I visit http://apps.local.openedx.io/hello/, I just see a blank page instead of the expected message.
Ronak_Pansuriya1
(Ronak Pansuriya - Abstract Technology - abstract-technology.de)
September 11, 2025, 7:01pm
2
Hello @utsavjari
In your apps.py you currently have:
plugin_app = {
'url_config': {
'lms.djangoapp': {
'namespace': name,
'regex': f'^{name}/',
'relative_path': 'urls',
},
},
Since name = "hello_world", the regex becomes ^hello_world/.
That means your URL is mounted at: http://apps.local.openedx.io/hello_world/
But you’ve been visiting /hello/, which is why you only see a blank page.
You have two options:
Option 1: Keep it at /hello_world/
No code changes needed. Just visit:
http://apps.local.openedx.io/hello_world/
Option 2: Mount at /hello/ (what you expected):
Update apps.py like this:
class HelloWorldConfig(AppConfig):
name = 'hello_world'
domain_name = 'hello_world'
verbose_name = 'hello world plugin'
plugin_app = {
'url_config': {
'lms.djangoapp': {
'namespace': 'hello',
'regex': r'^hello/',
'relative_path': 'urls',
},
},
}
Now you’ll hit: http://apps.local.openedx.io/hello/
Let me know if it will help