【玩转全栈】----Django基本配置和介绍

Django 简介

Django 是一个高级 Python Web 框架,遵循"快速开发"和"DRY(Don't Repeat Yourself)"原则。它提供了强大的 ORM、自带管理后台、模板引擎和安全性功能,适合快速构建复杂的 Web 应用。Django 采用 MTV(Model-Template-View)模式,类似于 MVC。

安装 Django

确保已安装 Python(推荐 3.8+版本)。通过 pip 安装最新稳定版 Django:

bash 复制代码
pip install django

验证安装:

bash 复制代码
python -m django --version

创建 Django 项目

使用以下命令创建新项目(项目名为 myproject):

bash 复制代码
django-admin startproject myproject

目录结构如下:

复制代码
myproject/
    manage.py           # 项目管理脚本
    myproject/          # 项目配置目录
        __init__.py
        settings.py     # 主配置文件
        urls.py         # URL 路由配置
        asgi.py         # ASGI 配置
        wsgi.py         # WSGI 配置

运行开发服务器

进入项目目录,启动开发服务器:

bash 复制代码
python manage.py runserver

默认访问 http://127.0.0.1:8000/ 即可看到欢迎页面。

配置基础设置

修改 settings.py 关键配置项:

  1. 数据库配置(默认 SQLite):
python 复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
  1. 静态文件路径
python 复制代码
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static"]
  1. 时区和语言
python 复制代码
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_TZ = False

创建应用

Django 项目由多个应用组成。创建应用(例如名为 blog):

bash 复制代码
python manage.py startapp blog

应用目录结构:

复制代码
blog/
    migrations/         # 数据库迁移文件
    __init__.py
    admin.py            # 管理后台配置
    apps.py             # 应用配置
    models.py           # 数据模型
    tests.py            # 测试代码
    views.py            # 视图逻辑

注册应用

settings.pyINSTALLED_APPS 中添加新应用:

python 复制代码
INSTALLED_APPS = [
    ...,
    'blog',
]

定义第一个视图

blog/views.py 中编写简单视图:

python 复制代码
from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello, Django!")

配置 URL 路由

  1. blog 目录下创建 urls.py
python 复制代码
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
  1. 在项目 myproject/urls.py 中包含应用路由:
python 复制代码
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

数据迁移

首次运行需迁移内置模型(如用户权限):

bash 复制代码
python manage.py migrate

访问管理后台

创建超级用户:

bash 复制代码
python manage.py createsuperuser

启动服务器后,访问 http://127.0.0.1:8000/admin 登录管理界面。

模板渲染

  1. blog 下创建 templates/blog 目录,添加模板文件 home.html
html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>Welcome to {{ site_name }}</h1>
</body>
</html>
  1. 修改视图以渲染模板:
python 复制代码
from django.shortcuts import render

def home(request):
    context = {
        'title': 'Home',
        'site_name': 'My Blog'
    }
    return render(request, 'blog/home.html', context)

以上步骤完成了 Django 的基础配置和核心功能演示。后续可扩展模型定义、表单处理、用户认证等高级功能。

相关推荐
Deamon Tree4 小时前
如何保证缓存与数据库更新时候的一致性
java·数据库·缓存
大G的笔记本4 小时前
MySQL 中的 行锁(Record Lock) 和 间隙锁(Gap Lock)
java·数据库·mysql
洲覆5 小时前
go-mysql-transfer 伪装从库实现 MySQL 到 Redis 数据同步(完整配置)
数据库·redis·mysql·golang
谅望者5 小时前
SQL 自连接详解:当数据表需要与自己对话(组织层级实战)
数据库·sql·mysql·oracle·database
姚远Oracle ACE5 小时前
解读 “SQL ordered by Physical Reads (UnOptimized)“
数据库·sql·oracle
山峰哥5 小时前
KingbaseES 表空间与模式优化策略深度研究报告
开发语言·数据结构·数据库·oracle·深度优先
九转苍翎6 小时前
深入解析MySQL(6)——存储过程、游标与触发器
数据库·mysql
武子康6 小时前
Java-164 MongoDB 认证与权限实战:单实例与分片集群 整体认证配置实战 最小化授权/错误速查/回滚剧本
java·数据库·分布式·mongodb·性能优化·系统架构·nosql
金仓拾光集6 小时前
《MongoDB 重建索引要锁库?金仓却能边跑边修》
数据库·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库