视图功能初探
2021-10-26 本文已影响0人
D_w
初始化应用
- 构建一个django项目:
django-admin startproject testproject
执行完这个命令后会生成testproject文件目录
- testproject <dir> —————— 只是你项⽬的容器, ⽬录名称对 Django 没有影响,你可以将它重命名为任何你喜欢的名称。
- testproject <projectdir> —————— ⼀个 Python 包。它的名字就是当你引⽤它内部任何东⻄时需要⽤到的 Python 包名。
- __init__.py <file> —————— ⼀个空⽂件,告诉 Python 这个目录应该被认为是⼀个 Python 包。用于申明。
- asgi.py <file> —————— 作为你的项⽬的运⾏在 ASGI 兼容的 Web 服务器上的入口。使⽤ ASGI 来部署的时候使⽤。
- settings.py <file> —————— Django 项⽬的配置⽂件。
- urls.py <file> —————— Django 项⽬的 URL 声明,就像你⽹站的“⽬录”。
- wsgi.py <file> —————— 作为你的项⽬的运⾏在 WSGI 兼容的Web服务器上的入口。使⽤使⽤ WSGI 进⾏部署的时候使⽤。
- manage.py <file> —————— ⼀个让你⽤各种⽅式管理 Django 项⽬的命令⾏⼯具
- 利用manage.py执行初始化数据库的命令
python manage.py migrate
- 利用manage.py 执行生成应用
python manage.py startapp testapp
执行完此命令后会在testproject文件夹中生成一个testapp的包文件:
- testapp <projectdir> —————— ⼀个 Python 包。它的名字就是当你引⽤它内部任何东西时需要⽤到的 Python 包名。
- migrations <projectdir> —————— ⼀个 Python 包。它的名字就是当你引⽤它内部任何东⻄时需要⽤到的 Python 包名。
- __init__.py <file> —————— ⼀个空⽂件,告诉 Python 这个⽬录应该被认为是⼀个 Python 包。⽤于申明。
- __init__.py <file> —————— ⼀个空⽂件,告诉 Python 这个⽬录应该被认为是⼀个Python 包。⽤于申明。
- admin.py <file> —————— ⾃定义 Django 管理⼯具。
- apps.py <file> —————— Django 应⽤的配置⽂件。
- models.py <file> —————— 模型管理⽂件
- tests.py <file> —————— 测试⽂件
- views.py <file> —————— 视图管理⽂件
- 在项目中注册应用:
- 在项目包文件中找到setting.py文件,打开找到INSTALLED_APPS列表位置,在该列表内添加刚创建的应用名称,记得加,
image.png
项目与应用的关系:应⽤程序是可以执⾏某些操作的 Web 应⽤程序,例如,Weblog 系统、公共记录数据库或小型投票应⽤程序。项⽬是特定⽹站的配置和应⽤程序的集合。⼀个项⽬可以包含多个应用程序。⼀个应⽤程序可以在多个项⽬中。
构建应用视图
- 打开testapp/views.py,写入
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello World")
这个views文件中可以理解为在页面上展示的内容,内容写完后下一步需要映射到一个url中
- 打开文件testproject/urls.py,写入
from testapp.views import index # 将刚写好的index函数导入
urlpatterns += [ # 不要改动其中原有的urlpatterns,新写一个,这里一定要写成+=
path('luyou1',index) # path中中第一个是你要访问的路由,第二个是该路由展示的内容
]
- 运行项目
命令行输入 python manage.py runserver - 打开网址 http://127.0.0.1:8080/tluyou1,就会显示hello world
image.png
构建一个返回html的视图
在刚刚testapp目录下新建一个directory,名字是固定的,为templates,再在该文件夹内新建一个hello.html,内容为
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p> hello world</p>
{#<a href="hello1.html">click</a> 这里不能给模板名,即相对路径,会和路由对不上#}
<a href="http://127.0.0.1:8000/hello1">click</a>
</body>
</html>
再次编辑文件views.py
def index(request):
return render(request,"hello.html")
重新打开 :http://127.0.0.1:8000/luyou1/ ,这样就展示了html中的内容,还有一个页面跳转