如何通过http://127.0.0.1:8000/index -------->访问到Hello World?
本博客主要是说明这个问题。
- Django框架会将Web服务器获取到的请求信息,进行处理,处理完成后会以位置参数第一个参数的形式传递给视图函数,所有视图函数必须预留第一个参数,代表所有的请求信息
- 视图函数返回的内容必须为response对象,该对象已经帮我们封装好了满足HTTP协议的相应头信息
- 直接用print(“Hello World”)是没法直接在界面中显示出来的。需要用到HttpResponse()函数(可以反向导入包,alt + enter)
- Django框架首先调用主路由表,获取url地址和与其对应的视图函数,而urlpatterns(如下所示)其实就是将url地址和视图函数进行一一映射
1、输入url地址之后,应该首先找到:路由文件------->获取相应的视图函数
在settings.py中有ROOT_URLCONF = 'sitel.urls' 配置指明路由文件所在地址 urls.py
#全局变量,路由列表,数据url地址与视图函数的映射关系
#文件中原始内容如下:
'''(Django不同版本,所显示内容不一样,1.x版本,是url()函数,等价于2.x中的re_path()函数)'''
urlpatterns = [
path('admin/',admin.site.urls),
]
#url:http://域名/路径/路径/....
#url:http://域名/admin/路径/....
url是统一资源定位符
Http://hostname[:port]/path/[?query]
路由中,将视图函数与url地址绑定在urls.py文件中
urls.py中代码如下:
#在路由表中将url地址和视图函数进行绑定(第一个参数为url地址,第二个参数为视图函数)
urlpatterns = [
#映射关系
path('admin/',admin.site.urls),
path('index/',index),
re_path(r'^index/$',index) #两种方法选其一即可
#一般情况下,我们都需要给首页一个单独配置一个映射关系,就是我们不用输入路径的时候就可以看到,像百度的首页就省略了index.php
path('',index)
#映射关系,模板如下:
re_path(r'^url......$',视图函数,name='标识1') #name的这个标识一般可以不写,但在反向路由会用到
]
一般都会把视图函数放在views.py中(主应用没有,需要自己新建一个,子应用会自动生成)
主应用中的views.py代码如下:
#预留出所有的参数代表所有请求信息
def index(request):
return HttpResponse("Hello World")