Django基础——初识Django
一、Django简介( Python Web 框架)
1、Django 是一个由 Python 写成的开放源代码的 Web 应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。
Django 框架的核心组件有:
-
用于创建模型的对象关系映射;
-
为最终用户设计较好的管理界面;
-
URL 设计;
-
设计者友好的模板语言;
-
缓存系统。
2、架构设计(MVC框架和MTV框架)
Django已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。
(1)MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),
具有耦合性低、重用性高、生命周期成本低等优点。如图:
(2)Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。
Django的MTV模式
- Model(模型):负责业务对象与数据库的对象(ORM)
- Template(模版):负责如何把页面展示给用户
- View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
Django框架图示
(3)但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
层次
|
职责
|
模型(Model),即数据存取层
|
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
|
模板(Template),即表现层
|
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
|
视图(View),即业务逻辑层
|
存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。
|
Django是Python的第三方模块需要通过PIP安装
pip install django==2.1 #指定版本安装,默认是安装最新版本
注:最新版本的Django对mysql版本也有要求
1、命令安装django
(1)创建工程
django-admin startproject 工程名称
django-admin startproject mysite #不能以django为工程名
(2)启动项目的时候,需要切换到mysite目录下,执行如下命令:
python manage.py runserver #默认使用8000端口
(3)命令后面还可以指定参数:
python manage.py runserver 127.0.0.1:8002 #还可以指定IP和端口,冒号分割
python manage.py runserver 0.0.0.0:8002 #IP 0.0.0.0 大家都可访问
(4)创建子模块(一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码)
python manage.py startapp app
(5)创建表结构:
python manage.py makemigrations
python manage.py migrate
(6)查询命令
python manage.py --help
(7)创建超级用户
python manage.py createsuperuser
注:输入以上命令后,根据提示输入用户名、邮箱、密码、确认密码。密码的要求至少是不八位,不能和邮箱太接近,两次密码需要一致。
基本目录结构及作用:
mysite/ # 项目的容器,名字随便起
manage.py # 命令行实用工具,以各种方式与该Django项目进行交互
mysite/ # 实际的Python项目
__init__.py # 空文件,导入不出错
settings.py # 这个Django项目配置
urls.py # 这个Django项目的URL声明; 一个Django驱动网站的“目录”
wsgi.py # 一个入口点为WSGI兼容的Web服务器,以满足您的项目
2、通过Pycharm创建
File--New Project--Django,选好路径及环境
pycharm创建子模块
- Tools--Run manage.py Task 进入命令行
- startapp user #创建user子模块
三、欢迎来到Django
1、配置setting.py文件,起下服务:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False #要不然数据库用的还时标准时区
浏览器访问成功
2、体验Django
(1)views.py (views.py和urls.py时配套使用)
from django.shortcuts import render, HttpResponse
from . import models
# Create your views here.
def use_info(request): # request获取请求的东西
s = '你好'
return HttpResponse(s) # 返回字符串用它
def welcome(request):
username = 'caicai' # request
username_zh = '蔡蔡' # sql查
return render(request, 'welcome.html', {'username_zh': username_zh}) # 返回html用render
(2)urls.py
from django.contrib import admin
from django.urls import path
from user import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index', views.use_info),
path('welcome',views.welcome),
path('',views.index),
]
(3)welcome.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1 style="color: blue">{{username_zh}},我想喝奶茶</h1>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南