1、视图的基本:
视图对web请求进行回应
视图就是一个python的函数在views.py中定义
定义视图:在views.py文件中添加
from django.http import HttpResponse
def index(request):
return HttpResponse('hello world')
2、配置url
修改project目录下的urls.py文件,
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^',include('myApp.urls')), #站点后什么都不输入,匹配到myApp.urls.py文件下的url
]
在myApp应用目录下创建一个urls.py文件
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index), #刚才站点后什么都不输入,匹配到这里,然后在调用视图views下的index函数,然后会在站点上显示出来我们需要服务器返回的内容
]
4、模板的基本
模板是HTML页面,可以根据视图中传递过来的数据进行填充。
创建模板:在大项目中创建一个templates文件夹,和myApp、project同级,然后在目录下创建对应项目的模板目录(project/templates/myApp)
配置路径: 修改settings.py文件下的TEMPLATES,
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
在刚才创建的模板文件夹下创建grades.html和students.html文件。
5、例:使通过在站点输入localhost:8000/grades 可以查出班级的视图
编写grades.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>班级信息</title>
</head>
<body>
<h1>班级信息列表</h1>
<ul>
{%for grade in grades%}
<li>
<a href="#">{{grade.gname}}</a>
</li>
{%endfor%}
</ul>
</body>
</html>
定义视图:在views.py文件下定义一个grades函数
from .models import Grades,Students
def grades(request):
#去模板里取数据
gradesList=Grades.objects.all()
#将数据传递给模板,模板再渲染页面,将渲染好的额页面返回给浏览器
return render(request,'myApp/grades.html',{'grades':gradesList})
配置url,在myApp\urls.py文件下添加url正则匹配式:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
url(r'^(\d+)/$',views.detail), #匹配端口后输入数字时的情况。
url(r'^grades/$',views.grades) #匹配端口后输入grades(班级)时的情况。
这样就可以看到如下情况: