一,创建基本项目
创建项目
# web是项目名称或者称为项目目录
django-admin startproject web
# 会在执行命令的当前目录中 创建 web项目目录
web
├── manage.py # 项目管理文件 单入口文件
└── web # 和项目同名的目录/ 存放于项目相关的配置文件 等
├── __init__.py # 包初始化文件
├── settings.py # 项目的配置文件
├── urls.py # 项目的根路由文件
└── wsgi.py # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到启动服务
# 终端切换到 web/manage.py目录中并执行以下命令
python3 manage.py runserver
'''
(venv) MacBook-Pro:web yc$ ls
manage.py web
(venv) MacBook-Pro:web yc$ python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
.....
December 28, 2019 - 05:55:33
Django version 2.2.9, using settings 'web.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
'''访问服务
在浏览器的地址栏 访问 url http://127.0.0.1:8000/
成功后会在浏览器中看到默认页面
二,创建应用
执行命令创建自定义应用
# 在 manage.py 同级目录下 执行 以下命令 创建应用
python3 manage.py startapp home
# 应用创建成功后,会在mamage.py 的同级目录中创建一个 应用文件夹
web/
├── db.sqlite3 # Django框架默认使用数据库文件
├── home # 创建的自定义应用
│ ├── __init__.py
│ ├── admin.py # django框架自带后台模块配置文件
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py # 模型文件
│ ├── tests.py # 测试文件
│ └── views.py # 视图函数文件
├── manage.py # 项目管理文件 所以的项目指令都需要manage.py
└── web # 和项目同名的目录/ 存放于项目相关的配置文件 等
├── __init__.py # 包初始化文件
├── settings.py # 项目的配置文件
├── urls.py # 项目的根路由文件
└── wsgi.py # 通用网关接口服务文件/后期上线部署到专业的HTTP服务器时需要用到
定义视图函数 输出 Hello World
编辑 web/home/views.py文件,定义视图函数
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# 定义 视图函数。输出hello world
def hello(request):
return HttpResponse('Hello World!...')
给视图函数定义访问路由
在 web/home/ 目录中 创建 urls.py文件. 并定义路由
# web/home/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('abc/', views.hello),
]需要在根路由中配置当前应用的路由
修改 web/web/urls.py 文件,把创建的应用中的路由 定义到 根路由中
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('home.urls'))
]启动服务,浏览器访问测试
# 启动服务。web/manage.py 同级目录中执行
python3 manage.py runserver
浏览器访问会得下面的结果,就是报 404 错误
问题是由于访问的URL 路径和项目中的url配置路径不一致导致的
解决问题有两个方案:
1.改变浏览器的访问路径 访问的URL。http://127.0.0.1:8000/abc/
2.改变应用中的路由配置 由原来的 path('abc/', views.hello), 改为 path('', views.hello),
正常的访问结果:
流程总结:
浏览器访问的流程
1. 用户在浏览器中输入 请求的URL地址 http://127.0.0.1:8000/abc/
2. 用户的请求会经过wsgi通用网关接口,走到项目的根路由中
3. 项目中的 根路由 web/web/urls.py 文件 会解析用户的请求地址 abc/
4. 根路由解析后会交给 应用中字路由进行再次解析:web/home/urls.py
5. 应用中的子路由 在根据请求的地址 找到对应的视图函数
6. 视图函数 views.py里面的。hello函数会执行
7. hello函数 返回了一个 响应内容 给浏览器
代码角度来解读:
1. views.py文件中的 hello视图函数 定义了 响应的内容。hello world
2. 应用中的子路由决定如何解析或执行 对应的hello这个视图函数
3. 项目中的根路由负责接收用户请求的url并找到对应的 应用去 执行
4. wsgi负责接收和响应用户的请求三, 概念解析
路由,视图,
路由:
路由就是建立请求路径和执行对应视图函数的 映射关系。
要先确定根路由,并依次匹配请求的规则
如果匹配到就执行对应的视图函数
如果没有匹配到或者出现其它问题,则会抛出对应的错误信息
视图:
视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应。
简单理解就是专门接收用户的请求,并执行业务逻辑,之后给用户响应内容。
四,如何使用模板文件返回 Hello World
创建模版文件目录
在项目中创建 templates 文件夹存放模版文件 manage.py文件同名目录中创建
配置Django的模版引擎
修改 web/web/settings.py文件的 模版引擎配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],# 修改此处的路径
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
创建需要使用的模版文件 。html文件
Web/templates/hello.html
Document
Hello. World
在视图函数中调用模版文件即可
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# 定义 视图函数。输出hello world
def hello(request):
# 返回。响应字符
# return HttpResponse('Hello World!...')
# 返回 模版文件
return render(request,'hello.html')
重新启动服务,并用浏览器进行访问
五,框架的设计思想,设计模式
MVC 设计模式。设计细想
MVC是程序的架构设计,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面
MVC的核心思想:程序的解藕
M ==> Model 模型 表示为 数据层 专门负责数据相关操作
V ==> Views 视图 表示为 视图层 专门负责页面的展示(模版)
C ==> Controller 控制器 表示为 逻辑层 专门负责项目中的业务逻辑部分
MVT
M ==> Model ==> 模型 ==> 数据层
V ==> Views ==> 视图 ==> 逻辑层
T ==>Template ==> 模版. ==> 视图层
领取专属 10元无门槛券
私享最新 技术干货