成都网站建设有哪些,wordpress主题 dux,网站群建设讲话,国内建筑网站1. 准备环境
在开始之前#xff0c;确保你的开发环境满足以下要求#xff1a;
安装了 Python (推荐 3.8 或更高版本)。安装 pip 包管理工具。如果要使用 MySQL 或 PostgreSQL#xff0c;确保对应的数据库已安装。
创建虚拟环境
在项目目录中创建并激活虚拟环境#xff…1. 准备环境
在开始之前确保你的开发环境满足以下要求
安装了 Python (推荐 3.8 或更高版本)。安装 pip 包管理工具。如果要使用 MySQL 或 PostgreSQL确保对应的数据库已安装。
创建虚拟环境
在项目目录中创建并激活虚拟环境保证项目依赖隔离
# 创建虚拟环境
python -m venv env# 激活虚拟环境
# Windows
env\Scripts\activate
# Linux/Mac
source env/bin/activate2. 安装 Django 和数据库驱动
在激活的虚拟环境中安装 Django
pip install django如果使用 MySQL 或 PostgreSQL还需要安装相应的驱动
MySQL: 安装 mysqlclient:pip install mysqlclientPostgreSQL: 安装 psycopg2:pip install psycopg2-binary如果只是使用 SQLiteDjango 默认支持无需额外安装。 3. 创建 Django 项目
使用 django-admin 创建一个新的项目
django-admin startproject myproject项目结构
创建后项目的基本结构如下
myproject/manage.py # 项目管理脚本myproject/__init__.py # 包标识settings.py # 项目设置urls.py # URL 配置asgi.py # ASGI 配置wsgi.py # WSGI 配置4. 配置数据库
打开 myproject/myproject/settings.py找到 DATABASES 配置项根据数据库类型修改配置
默认的 SQLite 配置
DATABASES {default: {ENGINE: django.db.backends.sqlite3,NAME: BASE_DIR / db.sqlite3,}
}使用 MySQL
如果你使用 MySQL修改为
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: your_database_name,USER: your_database_user,PASSWORD: your_database_password,HOST: localhost, # 数据库主机地址通常是 localhostPORT: 3306, # MySQL 默认端口}
}使用 PostgreSQL
如果你使用 PostgreSQL修改为
DATABASES {default: {ENGINE: django.db.backends.postgresql,NAME: your_database_name,USER: your_database_user,PASSWORD: your_database_password,HOST: localhost, # 数据库主机地址通常是 localhostPORT: 5432, # PostgreSQL 默认端口}
}5. 创建 Django 应用
在项目目录中创建一个新的 Django 应用
python manage.py startapp myapp应用结构
创建后应用的结构如下
myapp/migrations/ # 数据库迁移文件目录__init__.py__init__.py # 包标识admin.py # 管理后台配置apps.py # 应用配置models.py # 数据模型定义tests.py # 单元测试views.py # 视图函数6. 配置应用
打开 myproject/myproject/settings.py在 INSTALLED_APPS 中添加你的新应用
INSTALLED_APPS [# Django 自带的应用django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,# 你的应用myapp,
]7. 创建模型并生成数据库表
在 myapp/models.py 中定义数据模型。例如
from django.db import modelsclass Lesson(models.Model):id models.CharField(max_length20, primary_keyTrue)name models.CharField(max_length50)def __str__(self):return self.name生成迁移文件
运行以下命令生成迁移文件
python manage.py makemigrationsDjango 会检测到模型更改并生成迁移文件例如
Migrations for myapp:myapp/migrations/0001_initial.py- Create model Lesson应用迁移文件
运行以下命令将迁移文件应用到数据库生成表结构
python manage.py migrate生成并应用迁移文件的目的
将模型定义和数据库表结构同步确保模型中的字段和属性能够在数据库中对应为实际的表和列
迁移文件的作用
迁移文件是 Django 提供的一种机制用于跟踪和记录数据模型的变化然后将这些变化应用到数据库中。**作用1**将模型转换为数据库表 在 models.py 中定义的模型只是 Python 的类它们描述了表的结构如字段、类型、约束等但它们并不会自动创建数据库中的实际表。 迁移文件将这些模型转化为一组可以执行的指令SQL 语句以在数据库中创建实际的表。 举例 在models.py中定义
from django.db import modelsclass User(models.Model):id models.AutoField(primary_keyTrue)username models.CharField(max_length100)email models.EmailField()迁移文件会生成相应的SQL语句
CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(100) NOT NULL,email VARCHAR(254) NOT NULL
);**作用2**跟踪和管理模型的变更 当你对 models.py 中的模型做出修改如新增字段、修改字段类型、删除字段等时Django 会通过迁移文件记录这些变化。应用迁移文件后Django 会将这些更改同步到数据库中而不会丢失现有数据。举例假设你为User模型添加了一个新的字段age
age models.IntegerField(default18)生成迁移文件以后Django会创建一个指令来添加字段
ALTER TABLE user ADD COLUMN age INT NOT NULL DEFAULT 18;**作用3**管理多开发者协作中的数据库一致性 在多人开发时每个开发者可能对模型进行不同的更改通过迁移文件可以记录这些更改并在团队中共享。迁移文件以增量的形式记录每次更改确保所有开发者和环境中的数据库表结构保持一致。
8. 运行开发服务器
使用以下命令启动 Django 开发服务器
python manage.py runserver打开浏览器访问 http://127.0.0.1:8000/ 以查看项目是否正常运行。 9. 添加管理后台支持
如果需要通过 Django 的管理后台管理数据库可以为模型添加管理支持。
注册模型
打开 myapp/admin.py注册模型
from django.contrib import admin
from .models import Lessonadmin.site.register(Lesson)创建超级用户
运行以下命令创建管理员账户
python manage.py createsuperuser按照提示输入用户名、邮箱和密码。
访问管理后台
启动开发服务器后访问 http://127.0.0.1:8000/admin使用管理员账户登录即可管理数据库中的数据。 10. 测试操作数据库
可以通过 manage.py shell 交互式操作数据库
python manage.py shell在交互环境中
from myapp.models import Lesson# 创建记录
lesson Lesson.objects.create(id1, nameDjango Basics)# 查询记录
lesson Lesson.objects.get(id1)
print(lesson.name)# 更新记录
lesson.name Advanced Django
lesson.save()# 删除记录
lesson.delete()总结
通过以上步骤你可以从零创建一个 Django 项目并设置数据库支持。核心流程包括
安装 Django 和数据库驱动。配置数据库连接。创建应用和模型。生成并应用迁移文件。运行开发服务器并使用 Django 提供的管理后台。
项目结构解读 env文件夹
概念env 文件夹是一个 虚拟环境 的文件夹。什么是虚拟环境【虚拟环境是 Python 提供的一种工具用于隔离项目的依赖。它允许你在每个项目中独立安装 Python 包而不会干扰全局 Python 环境或其他项目的依赖。】为什么需要虚拟环境 依赖隔离每个项目可能需要不同版本的库如果不使用虚拟环境可能会导致版本冲突。防止污染全局环境全局环境中的库安装可能会影响其他项目的正常运行。 env文件夹的作用 环境隔离当你激活虚拟环境时所有安装的依赖包如 Django都被存储在 env 文件夹中。存储依赖包例如你安装的 Django 和 MySQL 驱动等依赖都会存储在 env/Lib/site-packages 下。 激活虚拟环境window
env\Scripts\activate激活虚拟环境Linux/Mac
source env/bin/activate关闭虚拟环境
deactivate项目目录结构以及Django项目开发注意点
myproject/manage.pymyproject/__init__.pysettings.pyurls.pyasgi.pywsgi.pymyapp/migrations/__init__.pyadmin.pyapps.pymodels.pytests.pyviews.pymanage.py
概念manage.py 是 Django 项目的入口点。它是一个命令行工具允许你管理项目如运行开发服务器、数据库迁移等。常见的命令包括启动开发服务器
python manage.py runserver创建数据库迁移
python manage.py makemigrations
python manage.py migrate创建超级用户
python manage.py createsuperusermyproject/同名的文件夹
概念这个文件夹是Django项目的配置文件夹它的名字和项目名一致settings.py项目的核心配置文件包括数据库配置、已安装的应用、静态文件路径等。urls.py项目的 URL 路由配置文件用于将 URL 路径映射到对应的视图函数。asgi.pyASGI异步服务器网关接口配置用于支持异步请求处理。wsgi.pyWSGIWeb服务器网关接口配置用于部署 Django 项目到生产环境。
myapp创建的应用目录
myapp/ 是你创建的应用目录。Django 项目可以包含多个应用每个应用负责不同的功能模块。各文件的作用 models.py定义数据模型数据库表结构。views.py处理用户的请求并返回响应。admin.py配置管理后台Django admin。apps.py管理应用的配置信息。migrations/存储数据库迁移文件用于跟踪模型的变化。tests.py定义测试用例用于自动化测试。init: 标识这是一个Python包 文件夹可以被 Python 识别为模块
为什么 myproject 文件夹下有一个和项目同名的文件夹
这是Django项目默认的目录结构 最外层的 myproject/ 是项目的根目录存放项目入口点 manage.py 和其他项目相关的文件。内层的 myproject/ 是项目的 配置文件夹存放项目的配置如 settings.py、urls.py 等。 这样设计的目的 Django 这样设计的原因是为了方便管理项目的全局文件和应用文件。分开这两层结构可以更清晰地区分项目的配置文件和其他文件。
修改项目名称会影响哪些地方
如果你需要修改项目名称内层文件夹myproject中的配置文件需要同步更新。例如 asgi.py 和 wsgi.py 中引用的模块路径需要修改。项目运行时的模块路径也需要更新。
如何添加更多的应用到项目中
Django 支持模块化的开发可以为项目添加多个应用每个应用负责不同的功能。创建新的应用使用startapp命令创建新应用例如
python manage.py startapp blog注册应用将新应用注册到项目的 INSTALLED_APPS 中
# settings.py
INSTALLED_APPS [# 默认应用django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,# 你的自定义应用myapp,blog,
]添加URL路由为新应用配置URL例如在新应用blog中创建urls.py
# blog/urls.py
from django.urls import path
from . import viewsurlpatterns [path(, views.index, nameindex), # 主页
]在项目的urls.py中包含这个应用的URL
# myproject/urls.py
from django.contrib import admin
from django.urls import path, includeurlpatterns [path(admin/, admin.site.urls),path(blog/, include(blog.urls)), # 包含 blog 的路由
]项目结构总结
env 文件夹是虚拟环境的文件夹用于隔离项目依赖。项目结构 外层 myproject/ 是根目录存放入口文件如 manage.py。内层 myproject/ 是项目的配置文件夹存放 settings.py 等配置。myapp/ 是一个应用目录你可以创建多个应用每个应用负责不同的功能模块。 模块化开发 Django 项目可以包含多个应用通过 startapp 命令创建新应用并通过 INSTALLED_APPS 注册到项目中。
编辑数据库时是否需要书写models.py文件
1. 使用models.py的场景
在大多数情况下推荐通过models.py 文件来定义和操作数据库这是 Django 的核心功能之一。优点 **ORM提供抽象层**通过Django的ORM对象关系映射你可以直接使用Python类和方法操作数据库而无需手写SQL**数据变更自动管理:**通过迁移migrations功能可以轻松跟踪和管理数据库结构的变更。代码可维护性强 models.py 中的类定义直接对应数据库表代码更直观、更易维护。**跨数据库支持**通过 Django 的 ORM同一套代码可以适配不同的数据库如 SQLite、MySQL、PostgreSQL。
2. 直接操作数据库的场景无需models.py
场景1已有数据库表
如果你的项目需要操作一个已有的数据库非 Django 管理的表你可以直接通过 SQL 或第三方库操作它而不定义模型。也可以使用Django的inspectdb功能自动生成模型
场景2复杂SQL查询
如果某些操作难以通过 ORM 实现例如复杂的联表查询、多级嵌套查询等可以直接使用 SQL 查询。
场景3一次性脚本或数据迁移
如果只是临时操作数据库如迁移数据、批量更新等可以直接运行原生 SQL而不需要定义模型。