Django从头学----学习笔记3

1、视图的基本

视图对web请求进行回应

视图就是一个python的函数在views.py中定义

定义视图:在views.py文件中添加

1
2
3
4
5
from django.http import HttpResponse

def index(request):

return HttpResponse('hello world')

2、配置url

修改project目录下的urls.py文件,

1
2
3
4
5
6
7
8
9
10
11
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文件

1
2
3
4
5
6
7
8
9
from django.conf.urls import url

from . import views

urlpatterns = [

url(r'^$',views.index), #刚才站点后什么都不输入,匹配到这里,然后在调用视图views下的index函数,然后会在站点上显示出来我们需要服务器返回的内容

]

3、模板的基本

模板是HTML页面,可以根据视图中传递过来的数据进行填充。

创建模板:在大项目中创建一个templates文件夹,和myApp、project同级,然后在目录下创建对应项目的模板目录(project/templates/myApp)

配置路径: 修改settings.py文件下的TEMPLATES,

1
2
3
4
5
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,

在刚才创建的模板文件夹下创建grades.html和students.html文件。

4、例:使通过在站点输入localhost:8000/grades 可以查出班级的视图

编写grades.html文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!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函数

1
2
3
4
5
6
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正则匹配式:

1
2
3
4
5
6
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(班级)时的情况。

这样就可以看到如下情况:

-------------本文结束,感谢您的阅读-------------