Python Web开发:单文件Django

来自CloudWiki
跳转至: 导航搜索

背景

django 能否以单一的Python文件形式来开发项目呢 ?

答案是肯定的。

实训步骤

导入依赖包

from django.conf import settings #配置文件钩子
from django.http import HttpResponse #返回一个响应
from django.urls import path #用于设置路由urlpatterns

加载配置文件

django加载配置文件有两种方式:

  • 使用settings.configure(**settings)手动写每一项配置
  • 使用django.setup()通过环境变量来配置:读取DJANGO_SETTINGS_MODULE的值,然后把它的值作为配置文件的路径。

test.py:

setting = {'DEBUG':True,'ROOT_URLCONF':__name__}
settings.configure(**setting)
#设置进入调试模式
#把urlpatterns这个变量写进这个文件中

视图处理函数

#视图处理函数
def home(request):
    return HttpResponse('Hello World')

配置路由URL

#配置路由URL
urlpatterns = [
    path('',home,name='home'),
]

编写运行主逻辑

在django框架中使用python manage.py运行项目,

实际其核心是通过调用django的execute_from_command_line(**command_line_args)来运行应用。

if __name__ == '__main__':
    import sys
    from django.core.management import execute_from_command_line
    execute_from_command_line(sys.argv)

运行测试

cd D:\Tech\Python Web\Python Web开发从入门到实战\mycode\singleDjango

python test.py runserver

运行在浏览器器中访问http://127.0.0.1:8000/即可看到页面上输出“hello world!"字样

通过14行代码就完成了一个单文件Django项目,其原理就是将原先Django框架下的位于各个文件中的配置、路由、视图放在同一个文件下。通过它,大家可进一步体会django各个模块的作用。

全部代码

from django.conf import settings #配置文件钩子
from django.http import HttpResponse #返回一个响应
from django.urls import path #用于设置路由urlpatterns

setting = {'DEBUG':True,'ROOT_URLCONF':__name__}
settings.configure(**setting)

#设置进入调试模式
#把urlpatterns这个变量写进这个文件中

#视图处理函数
def home(request):
    return HttpResponse('Hello World')

#配置路由URL

urlpatterns = [
    path('',home,name='home'),
]

if __name__ == '__main__':
    import sys
    from django.core.management import execute_from_command_line
    execute_from_command_line(sys.argv)