urls和views

urls.py文件其实定义了项目的路由,路由通俗来讲可以理解成网址去掉主机名之后的剩余部分。

urls.py文件中默认只定义了一个path('admin/', admin.site.urls),可以尝试访问http://127.0.0.1/admin/,就可以看到一个登录页面,这个东西就是个网站后台数据库管理平台,以后再说。

当然我们可以加入自己的url,例如如果我们希望访问http://127.0.0.1/hello时得到一个写了helloworld的网页,就可以在urls.py中这么搞:

  • 在导入部分添加:
from . import views
  • urlpatterns列表中添加:
path('hello/', views.hello),

桥豆麻袋!?views是什么玩意?

views.py在django中被称为视图文件,其实就是包含了一些后端的逻辑,用来处理各种请求,views.hello意为views.py文件中的hello函数,新添加的path('hello/', views.hello)表示用hello函数来处理来自’hello/‘路由的请求。但是这个文件夹下并没有自动生成views.py,需要手动建立一个与urls.py同级的views.py文件,并写入:

from django.http import HttpResponse

# request参数必须加!!!不管后面有没有用到
def hello(request):
    return HttpResponse('helloworld')

这个时候,访问http://127.0.0.1/hello/就可以进入一个写了helloworld的页面了。

app中的urls和views

在helloworld文件夹下的urls中做如下操作:

  • 导入include函数
from django.urls import include
  • urlpatterns列表中添加一项:
path('one_app/', include('one_app.urls')),

则’one_app/‘成为网站根目录下应用one_app的子路径,同时one_app文件夹下的urls.py(app文件夹下没有生成urls.py,需要自己创建)中定义的路由将会拼接到’one_app/‘后作为整个项目的url使用。例如若你在one_app/urls.py中定义了path('hi/', views.xxx),那么你就可以通过访问http://127.0.0.1/one_app/hi/来获得views.xxx函数的响应。