(4)django的新手三件套(返回页面、返回字符、重定向)

from django.shortcuts import render,HttpResponse,redirect

新手三件套,前期开发都会用到

render   #向浏览器返回页面

HttpResponse   #向浏览器返回字符内容

redirect   #重定向

 

django里有分层的概念

urls.py就是路由层

views.py 就是视图层

templates.py 就是模板层

modles.py  就是模型层

 

django框架的简单使用

urls.py

from app01 import views   #这里导入app01包下的模块
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 执行函数的对应关系,这个是固定写法,第一个r后面跟的是一个路径,后面跟倒入的函数
url(r'index/',views.index),
]

views.py

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.
# 这里写函数
def index(request): # 这里一定要有一个形参,request这个是标准的写法
# 这个可以向浏览区返回内容
return HttpResponse('hello web')

PS:访问地址的时候需要在地址后面跟对应关系的路径,否则404报错

 

django返回一个html页面

urls.py

from app01 import views   #这里导入app01包下的模块
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 执行函数的对应关系,这个是固定写法,第一个r后面跟的是一个路径,后面跟倒入的函数
url(r'index/',views.index),
]

views.py

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.
# 这里写函数
def index(request): # 这里一定要有一个形参,request这个是标准的写法
# 这个可以向浏览区返回内容
return render(request,'index.html')

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我是首页</title>
</head>
<body>
<h1>django的index页面</h1>
<a href="http://www.baidu.com">点击进百度</a>
</body>
</html>

django返回一个重定向

urls.py

from app01 import views   #这里导入app01包下的模块
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 执行函数的对应关系,这个是固定写法,第一个r后面跟的是一个路径,后面跟倒入的函数
url(r'index/',views.index),
]

views.py

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.
def index(request): # 这里一定要有一个形参,request这个是标准的写法
# 返回一个重定向
'''当你访问这个函数的时候,这个函数直接返回一个重定向的地址给你,这样你访问的就是这个返回的地址'''
return redirect('http://www.baidu.com') #如果这里是一个页面文件的地址,则前后都要加 / 否则会出错

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我是首页</title>
</head>
<body>
<h1>django的index页面</h1>
<a href="http://www.baidu.com">点击进百度</a>
</body>
</html>

PS:重定向就是你发送一个请求,我返回另一个地址给你访问

 

关于路径的查找

默认django的settings文件里面已经写好了,就是当前项目的跟目录,如果项目下还有目录则自己可以拼写

返回模板文件夹templates下app01文件夹内的页面模板文件

from django.shortcuts import render,HttpResponse,redirect

# Create your views here.
def index(request): # 这里一定要有一个形参,request这个是标准的写法
# 因为默认是项目根目录,所以直接可以写模板文件下文件及名字+文件名
return render(request,'app01/time.html')

 

关于urls里面路由和函数的对应关系,正则匹配

from app01 import views
urlpatterns = [
# 这里带了^ 就是以admin的开头字母a来正则匹配
url(r'^admin/', admin.site.urls),
# url是一个函数,后面跟的是函数的参数,第一个是一个正则表达式,只要能匹配上index就能执行函数
url(r'index',views.index),
# 如果是^ 开头和结束符号$结尾,就是只能匹配的路径只有index,写其他的都不行
url(r'^index$',views.index),
]

PS:用户请求的路径只有符合路由和函数的对应关系才能请求成功

 

posted @ 2019-03-05 16:26  clyde_S  阅读(2982)  评论(0编辑  收藏  举报