0. 走进Django
1)简介
Django是一个用python编写的、具有完整架站能力的开源(BSD许可证)web框架。
2)版本
Django版本 | 发行时间-停止更新时间 | 兼容的python版本 |
---|---|---|
4.2 LTS | 2023/04-2026/4 | 3.9, 3.10 |
3.2 LTS | 2021/03-2024/03 | 3.6, 3.7, 3.8, 3.9, 3.10 |
3.1 | 2020/08-2021/12 | 3.6, 3.7, 3.8 |
3.0 | 2019/12-2021/03 | 3.6, 3.7, 3.8 |
2.2 LTS | 2019/12-2022/03 | 3.5, 3.6, 3.7, 3.8, 3.9 |
1.11 LTS | 2017/12-2020/03 | 2.7, 3.4, 3.5, 3.6, 3.7 |
3)开发模式
Django使用MTV模式来开发web应用。
构成 | 功能 | MVC对应关系 |
---|---|---|
Model(模型) | 负责业务对象和数据库的关系映射 | model.py <=> model |
Template(模板) | 负责页面的显示和用户的交互 | templates/ <=> View |
View(视图) | 负责业务逻辑 | urls.py, view.py <=> Controller |
1. Django安装(windows环境)
方法一:pip安装
前置条件:需要已经安装python和pip。
pip install Django=2.2.*
方法二:vsc
前置条件:需要已经安装vsc
# 在vsc中安装以下插件
## python
## Django
方法三:venv+vsc
前置条件:需要已经安装vsc
# 1) 在vsc中安装以下插件
##python
# 2) 创建并激活虚拟环境
python -m venv mydjango
.\mydjango\Scripts\activate
##windows系统下可能出现的报错:无法加载文件 ...,因为在此系统上禁止运行脚本。
##解决方法
##以管理员身份运行PowerShell
##输入set-ExecutionPolicy RemoteSigned
##输入Y
# 3) 选择python解释器
## 点击Manage -> 点击Command Palette
## 选择python: Select Interpreter -> 选择上一步创建的虚拟环境
# 4) 新建终端(自动激活虚拟环境)
## 点击Terminal -> 点击new Terminal
# 5)安装django
python -m pip install django
2. 快速入门
1) 创建项目
# 创建项目
django-admin startproject myweb
############################################################
#myweb #容器目录
#├── manage.py #与项目交互的命令行程序
#└── myweb #项目目录,请勿修改!
# ├── __init__.py #空文件,告诉python该目录应被视作包目录
# ├── settings.py #项目全局配置文件
# ├── urls.py #项目路由配置文件
# └── wsgi.py #为项目提供服务入口
###########################################################
2) 创建应用
创建一个名为myapp的应用。
# 创建应用
python manage.py startapp app1
##################################################
#myapp #应用目录,请勿修改!
#├── admin.py #后台管理使用
#├── apps.py #应用管理文件
#├── __init__.py
#├── migrations #数据迁移文件
#│ └── __init__.py
#├── models.py #模型文件
#├── tests.py #测试用例
#└── views.py #视图文件
##################################################
只要是通过startapp
命令创建的应用,都需要在全局配置文件中对其进行注册:编辑settings.py
INSTALLED_APPS = [
...
'myapp',
]
3)处理控制器
Django框架中处理器主要有视图文件view.py
和路由文件urls.py
组成。
定义视图: myapp/view.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
'''
将渲染结果输出到index.html模板中
'''
return render(request, '1/index.html')
指定视图访问路由: myapp/urls.py
from django.contrib import admin
from django.urls import path,include
from myapp import views
urlpatterns = [
path('index/', views.index),
]
4) 处理模版
首先,创建模板目录templates/1
和模板文件templates/1/index.html
,根据需求编辑index.html
文件。以下展现了一个模板示例。
<div style="color:red;font-size:24px;">Hello Kitty*^_^*</div>
然后,在全局配置文件setting.py
注册模板目录。
import os
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')], #BASE_DIR已定义,可直接使用
}
]
5) 运行应用
运行以下命令运行应用。执行命令后在浏览器输入127.0.0.1:8000/index/访问应用。
python manage.py runserver 8000 #默认本地8000端口
#python manage.py runserver 0.0.0.0:8000 #远程访问,需要修改settings.py中ALLOWED_HOSTS