ToB企服应用市场:ToB评测及商务社交产业平台
标题:
从零创建一个 Django 项目
[打印本页]
作者:
泉缘泉
时间:
前天 04:04
标题:
从零创建一个 Django 项目
1. 准备环境
在开始之前,确保你的开发环境满足以下要求:
安装了 Python (推荐 3.8 或更高版本)。
安装 pip 包管理工具。
如果要使用 MySQL 或 PostgreSQL,确保对应的数据库已安装。
创建虚拟环境
在项目目录中创建并激活虚拟环境,包管项目依靠隔离:
# 创建虚拟环境
python -m venv env
# 激活虚拟环境
# Windows
env\Scripts\activate
# Linux/Mac
source env/bin/activate
复制代码
2. 安装 Django 和数据库驱动
在激活的虚拟环境中安装 Django:
pip install django
复制代码
如果使用 MySQL 或 PostgreSQL,还需要安装相应的驱动:
MySQL
: 安装 mysqlclient:
pip install mysqlclient
复制代码
PostgreSQL
: 安装 psycopg2:
pip install psycopg2-binary
复制代码
如果只是使用 SQLite,Django 默认支持,无需额外安装。
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', # 数据库主机地址,通常是 localhost
'PORT': '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', # 数据库主机地址,通常是 localhost
'PORT': '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 models
class Lesson(models.Model):
id = models.CharField(max_length=20, primary_key=True)
name = models.CharField(max_length=50)
def __str__(self):
return self.name
复制代码
天生迁移文件
运行以下命令天生迁移文件:
python manage.py makemigrations
复制代码
Django 会检测到模型更改并天生迁移文件,例如:
Migrations for 'myapp':
myapp/migrations/0001_initial.py
- Create model Lesson
复制代码
应用迁移文件
运行以下命令将迁移文件应用到数据库,天生表结构:
python manage.py migrate
复制代码
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 Lesson
admin.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(id='1', name='Django Basics')
# 查询记录
lesson = Lesson.objects.get(id='1')
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.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
myapp/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
复制代码
manage.py
概念;manage.py 是 Django 项目的
入口点
。它是一个命令行工具,允许你管理项目(如运行开发服务器、数据库迁移等)。常见的命令包括:
启动开发服务器
python manage.py runserver
复制代码
创建数据库迁移
python manage.py makemigrations
python manage.py migrate
复制代码
创建超级用户
python manage.py createsuperuser
复制代码
myproject/(同名的文件夹)
概念;这个文件夹是Django项目的配置文件夹,
它的名字和项目名一致
settings.py:项目的核心配置文件,包括数据库配置、已安装的应用、静态文件路径等。
urls.py:项目的 URL 路由配置文件,用于将 URL 路径映射到对应的视图函数。
asgi.py:ASGI(异步服务器网关接口)配置,用于支持异步哀求处理。
wsgi.py:WSGI(Web服务器网关接口)配置,用于部署 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 views
urlpatterns = [
path('', views.index, name='index'), # 主页
]
复制代码
在项目的urls.py中包含这个应用的URL;
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')), # 包含 blog 的路由
]
复制代码
项目结构总结
env 文件夹:是虚拟环境的文件夹,用于隔离项目依靠。
项目结构:
外层 myproject/ 是根目录,存放入口文件(如 manage.py)。
内层 myproject/ 是项目的配置文件夹,存放 settings.py 等配置。
myapp/ 是一个应用目录,你可以创建多个应用,每个应用负责不同的功能模块。
模块化开发:
Django 项目可以包含多个应用,通过 startapp 命令创建新应用,并通过 INSTALLED_APPS 注册到项目中。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4