ToB企服应用市场:ToB评测及商务社交产业平台

标题: 从零创建一个 Django 项目 [打印本页]

作者: 嚴華    时间: 2025-1-18 09:37
标题: 从零创建一个 Django 项目
1. 预备环境

在开始之前,确保你的开辟环境满足以下要求:

创建虚拟环境

在项目目录中创建并激活虚拟环境,保证项目依赖隔离:
  1. # 创建虚拟环境
  2. python -m venv env
  3. # 激活虚拟环境
  4. # Windows
  5. envScriptsactivate
  6. # Linux/Mac
  7. source env/bin/activate
复制代码

2. 安装 Django 和数据库驱动

在激活的虚拟环境中安装 Django:
  1. pip install django
复制代码
如果使用 MySQL 或 PostgreSQL,还必要安装相应的驱动:

如果只是使用 SQLite,Django 默认支持,无需额外安装。

3. 创建 Django 项目

使用 django-admin 创建一个新的项目:
  1. django-admin startproject myproject
复制代码
项目布局

创建后,项目的根本布局如下:
  1. myproject/
  2.     manage.py         # 项目管理脚本
  3.     myproject/
  4.         __init__.py   # 包标识
  5.         settings.py   # 项目设置
  6.         urls.py       # URL 配置
  7.         asgi.py       # ASGI 配置
  8.         wsgi.py       # WSGI 配置
复制代码

4. 设置数据库

打开 myproject/myproject/settings.py,找到 DATABASES 设置项,根据数据库范例修改设置:
默认的 SQLite 设置

  1. DATABASES = {
  2.     'default': {
  3.         'ENGINE': 'django.db.backends.sqlite3',
  4.         'NAME': BASE_DIR / 'db.sqlite3',
  5.     }
  6. }
复制代码
使用 MySQL

如果你使用 MySQL,修改为:
  1. DATABASES = {
  2.     'default': {
  3.         'ENGINE': 'django.db.backends.mysql',
  4.         'NAME': 'your_database_name',
  5.         'USER': 'your_database_user',
  6.         'PASSWORD': 'your_database_password',
  7.         'HOST': 'localhost',  # 数据库主机地址,通常是 localhost
  8.         'PORT': '3306',       # MySQL 默认端口
  9.     }
  10. }
复制代码
使用 PostgreSQL

如果你使用 PostgreSQL,修改为:
  1. DATABASES = {
  2.     'default': {
  3.         'ENGINE': 'django.db.backends.postgresql',
  4.         'NAME': 'your_database_name',
  5.         'USER': 'your_database_user',
  6.         'PASSWORD': 'your_database_password',
  7.         'HOST': 'localhost',  # 数据库主机地址,通常是 localhost
  8.         'PORT': '5432',       # PostgreSQL 默认端口
  9.     }
  10. }
复制代码

5. 创建 Django 应用

在项目目录中创建一个新的 Django 应用:
  1. python manage.py startapp myapp
复制代码
应用布局

创建后,应用的布局如下:
  1. myapp/
  2.     migrations/         # 数据库迁移文件目录
  3.         __init__.py
  4.     __init__.py         # 包标识
  5.     admin.py            # 管理后台配置
  6.     apps.py             # 应用配置
  7.     models.py           # 数据模型定义
  8.     tests.py            # 单元测试
  9.     views.py            # 视图函数
复制代码

6. 设置应用

打开 myproject/myproject/settings.py,在 INSTALLED_APPS 中添加你的新应用:
  1. INSTALLED_APPS = [
  2.     # Django 自带的应用
  3.     'django.contrib.admin',
  4.     'django.contrib.auth',
  5.     'django.contrib.contenttypes',
  6.     'django.contrib.sessions',
  7.     'django.contrib.messages',
  8.     'django.contrib.staticfiles',
  9.     # 你的应用
  10.     'myapp',
  11. ]
复制代码

7. 创建模子并生成数据库表

在 myapp/models.py 中定义数据模子。比方:
  1. from django.db import models
  2. class Lesson(models.Model):
  3.     id = models.CharField(max_length=20, primary_key=True)
  4.     name = models.CharField(max_length=50)
  5.     def __str__(self):
  6.         return self.name
复制代码
生成迁徙文件

运行以下命令生成迁徙文件:
  1. python manage.py makemigrations
复制代码
Django 会检测到模子更改并生成迁徙文件,比方:
  1. Migrations for 'myapp':
  2.   myapp/migrations/0001_initial.py
  3.     - Create model Lesson
复制代码
应用迁徙文件

运行以下命令将迁徙文件应用到数据库,生成表布局:
  1. python manage.py migrate
复制代码
生成并应用迁徙文件的目的


迁徙文件的作用


8. 运行开辟服务器

使用以下命令启动 Django 开辟服务器:
  1. python manage.py runserver
复制代码
打开欣赏器访问 http://127.0.0.1:8000/ 以查看项目是否正常运行。

9. 添加管理后台支持

如果必要通过 Django 的管理后台管理数据库,可以为模子添加管理支持。
注册模子

打开 myapp/admin.py,注册模子:
  1. from django.contrib import admin
  2. from .models import Lesson
  3. admin.site.register(Lesson)
复制代码
创建超级用户

运行以下命令创建管理员账户:
  1. python manage.py createsuperuser
复制代码
按照提示输入用户名、邮箱和暗码。
访问管理后台

启动开辟服务器后,访问 http://127.0.0.1:8000/admin,使用管理员账户登录即可管理数据库中的数据。

10. 测试操作数据库

可以通过 manage.py shell 交互式操作数据库:
  1. python manage.py shell
复制代码
在交互环境中:
  1. from myapp.models import Lesson
  2. # 创建记录
  3. lesson = Lesson.objects.create(id='1', name='Django Basics')
  4. # 查询记录
  5. lesson = Lesson.objects.get(id='1')
  6. print(lesson.name)
  7. # 更新记录
  8. lesson.name = 'Advanced Django'
  9. lesson.save()
  10. # 删除记录
  11. lesson.delete()
复制代码

总结

通过以上步骤,你可以从零创建一个 Django 项目,并设置数据库支持。核心流程包罗:
项目布局解读


env文件夹


项目目录布局以及Django项目开辟留意点

  1. myproject/
  2.     manage.py
  3.     myproject/
  4.         __init__.py
  5.         settings.py
  6.         urls.py
  7.         asgi.py
  8.         wsgi.py
  9.     myapp/
  10.         migrations/
  11.         __init__.py
  12.         admin.py
  13.         apps.py
  14.         models.py
  15.         tests.py
  16.         views.py
复制代码
manage.py


myproject/(同名的文件夹)


myapp(创建的应用目录)


为什么 myproject 文件夹下有一个和项目同名的文件夹?


修改项目名称会影响哪些地方?


怎样添加更多的应用到项目中?


项目布局总结


编辑数据库时,是否必要书写models.py文件

1. 使用models.py的场景


2. 直接操作数据库的场景(无需models.py)

场景1:已有数据库表;


场景2:复杂SQL查询


场景3:一次性脚本或数据迁徙


使用Django操作数据库(编写接口)


步骤1:在myproject文件夹下的settings.py文件中设置数据库信息

  1. DATABASES = {
  2.     'default': {
  3.         'ENGINE': 'django.db.backends.mysql',  # 使用 MySQL 驱动
  4.         'NAME': 'my_db_01',                   # 数据库名
  5.         'USER': 'your_mysql_username',        # MySQL 用户名
  6.         'PASSWORD': 'your_mysql_password',    # MySQL 密码
  7.         'HOST': 'localhost',                  # 数据库主机,通常是 localhost
  8.         'PORT': '3306',                       # MySQL 默认端口
  9.     }
  10. }
复制代码
步骤2:定义users表的范例; (方法一)


步骤3:编写视图获取所有用户信息;


步骤4:设置URL路由


步骤5:测试接口(欣赏器/postman都可)


操作数据库的时候为啥没有直接书写SQL代码?


Django ORM的工作原理;


Django ORM的上风


使用raw() 方法来执行自定义SQL;

方法1,


方法2;使用raw()和ORM



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4