Django项目创建流程
推荐使用pycharm并使用虚拟环境进行项目创建
一、Anaconda虚拟环境创建流程
命令行创建
1. 安装Anaconda
如果你还没有安装Anaconda,可以从Anaconda官网下载并安装适合你操作系统的版本。安装完成后,打开命令行终端(如Windows的Anaconda Prompt或macOS/Linux的终端)。
2. 更新conda
在创建新的虚拟环境之前,最好先更新conda
:
conda update conda
3. 创建虚拟环境
使用以下命令创建一个新的虚拟环境。例如,创建一个名为myenv
的环境:
conda create --name myenv
你可以指定要安装的Python版本或其他包。例如,创建一个包含Python 3.8的环境:
conda create --name myenv python=3.8
你还可以在创建环境时一次性安装多个包:
conda create --name myenv python=3.8 numpy pandas
4. 激活虚拟环境
创建环境后,你需要激活它:
conda activate myenv
激活环境后,你会在命令提示符中看到环境的名称,例如(myenv)
。
5. 安装包
在激活的虚拟环境中,你可以使用conda
或pip
安装所需的包。例如:
使用conda
安装包:
conda install scipy
使用pip
安装包:
pip install requests
6. 列出所有虚拟环境
使用以下命令可以查看你所有的虚拟环境:
conda env list
7. 列出环境中的包
使用以下命令列出当前环境中安装的所有包:
conda list
8. 停用虚拟环境
完成工作后,可以停用当前的虚拟环境:
conda deactivate
9. 删除虚拟环境
如果你不再需要某个虚拟环境,可以将其删除:
conda remove --name myenv --all
10. 导出和导入环境
你可以将环境导出为YAML
文件,然后在其他机器上导入:
导出环境:
conda env export > environment.yml
在其他机器上导入环境:
conda env create -f environment.yml
图形用户界面创建
使用Anaconda图形用户界面(GUI)创建和管理虚拟环境非常直观和方便。以下是如何通过Anaconda Navigator来创建和管理虚拟环境的详细步骤:
1. 打开Anaconda Navigator
- 在你的操作系统中打开Anaconda Navigator。如果你没有安装Anaconda Navigator,可以从Anaconda官网下载并安装Anaconda。
2. 创建新的虚拟环境
- 在Anaconda Navigator的主界面中,点击左侧的
Environments
选项卡。 - 在
Environments
选项卡的下方,点击Create
按钮,打开创建新环境的对话框。
3. 配置虚拟环境
- 在弹出的对话框中,为你的新环境命名,例如
myenv
。 - 选择你需要的Python版本或其他语言版本。如果需要特定版本的Python,例如Python 3.8,可以在下拉菜单中选择。
- 点击
Create
按钮,Anaconda Navigator将开始创建新的虚拟环境。这可能需要几分钟时间,具体取决于你选择的Python版本和其他配置。
4. 激活虚拟环境
- 创建完成后,新环境将出现在左侧的环境列表中。
- 点击你创建的环境名称,例如
myenv
,然后点击右侧面板中的Home
选项卡。 - 在
Home
选项卡中,你可以看到一些常用的应用程序(如Jupyter Notebook、Spyder等)。点击Install
按钮安装你需要的应用程序。
5. 安装包
- 选中环境后,你可以在
Environments
选项卡的右侧面板中看到Installed
、Not installed
和Updateable
三个标签。 - 点击
Not installed
标签,你可以看到尚未安装的所有可用包。使用搜索栏搜索你需要的包,例如numpy
。 - 勾选你要安装的包,然后点击右下角的
Apply
按钮。Anaconda Navigator将自动处理包的安装和依赖关系。
6. 管理环境
- 列出所有环境:在
Environments
选项卡中,你可以看到所有已创建的环境。 - 查看环境中的包:点击环境名称后,你可以在右侧面板中查看和管理该环境中的所有包。
- 停用环境:在Anaconda Navigator中,环境的激活和停用是通过选择不同的环境来实现的,你无需手动停用环境。
7. 删除虚拟环境
- 在
Environments
选项卡中,找到你想要删除的环境。 - 选中该环境后,点击右上角的
Remove
按钮。 - 确认删除操作,Anaconda Navigator将删除该环境及其所有内容。
8. 导出和导入环境
- 导出环境:选中环境后,点击
Export
按钮。选择保存路径和文件名,导出环境为.yml
文件。 - 导入环境:在
Environments
选项卡的底部,点击Import
按钮。选择之前导出的.yml
文件,Anaconda Navigator将自动创建并配置环境。
二、安装Django包
命令
pip install -i https://pypi.douban.com/simple django==4.2
安装完成后会在电脑原先装Python的文件下面新增一些文件:
- 在Python文件夹下的 Scripts 文件夹中会新增 django-admin.exe(工具,创建django项目中的文件和文件)
- 在Python文件夹下的 Lib 文件夹下的 site-packages 新增 django 文件夹(框架的源码)
三、创建
在终端创建
- 打开终端。
- 进入某个目录(项目放在哪里)
- 执行命令创建项目
例如:"c:\python39\Scripts\django-admin.exe" startproject 项目名称
# 如果 c:\python39\Scripts 已加入环境系统环境变量。
django-admin startproject 项目名称
Pycharm创建
直接选择左侧的Django进行创建即可(需要专业版)
说明
-
命令行,创建的项目是标准的。
-
pycharm,在标准的基础上默认给咱们加了点东西。
-
创建了一个templates目录【删除】
-
settings.py中【删除】
-
默认项目文件介绍
项目名
├── manage.py 【项目的管理,启动项目、创建app、数据管理】【不要动】【经常用】
└── 文件名
├── __init__.py
├── settings.py 【项目配置文件】 【经常修改】
├── urls.py 【URL和函数的对应关系】【经常修改】
├── asgi.py 【接收网络请求,支持异步】【不要动】
└── wsgi.py 【接收网络请求,仅同步】【不要动】
settings.py 文件说明
from pathlib import Path
# 项目根目录,即定位到了最外层的目录
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# 项目密钥
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-#$_$-zno^n$cf*j)a3m3!^&r_r=33#g(a7-y1w=w^@a13pnsy4'
# 是否启用调试模式,True:表示调试模式,一般用于开发过程;False:表示非调试模式,一般用于上线部署
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# 被允许访问的域名或IP
ALLOWED_HOSTS = ['*']
# 定义应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# App的注册
'App.apps.AppConfig',
# 定义自己的应用 例:
'user'
]
# 中间件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# 根路由
ROOT_URLCONF = 'DjangoDemo01.urls'
# 模板
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 指定模板的文件夹
'DIRS': [BASE_DIR / 'templates']
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# wsgi 目录
WSGI_APPLICATION = 'DjangoDemo01.wsgi.application'
# Database
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# 密码验证密码验证
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# 国际化
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# 静态文件 (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/
STATIC_URL = 'static/'
# 默认的主键字段类型
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
创建app
- 项目
- app,用户管理【表结构、函数、HTML模板、CSS】
- app,订单管理【表结构、函数、HTML模板、CSS】
- app,后台管理【表结构、函数、HTML模板、CSS】
- app,网站 【表结构、函数、HTML模板、CSS】
- app,API 【表结构、函数、HTML模板、CSS】
..
注意:这里不是手机中的App;一般情况下,项目下创建1个app即可。
App的创建命令:
manage.py stratapp App名称
App项目结构
├── app名称
│ ├── __init__.py
│ ├── admin.py 【固定,不用动】django默认提供了admin后台管理
│ ├── apps.py 【固定,不用动】app启动类
│ ├── migrations 【固定,不用动】数据库变更记录
│ │ └── __init__.py
│ ├── models.py 【重要】对数据库操作,添加模型层数据类文件
│ ├── tests.py 测试代码文件
│ └── views.py 【重要】函数
├── manage.py
└── 文件名
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py 【URL->函数】
└── wsgi.py
数据迁移
迁移的概念:就是将模型映射到数据库的过程
生成迁移文件:
python manage.py makemigrations
执行迁移:
python manage.py migrate
不需要初始化迁移文件夹,每个应用默认有迁移文件夹migrations
项目中生成的sqlite数据库并不能直接打开,需要在pycharm的database中进行配置
注:首次配置一般会提示下载连接驱动,直接下载即可
快速上手与运行
-
确保app已注册 【settings.py】
-
编写URL和视图函数对应关系 【urls.py】
-
编写视图函数 【views.py】
-
启动django项目
-
命令行启动
python manage.py runserver ip:端口 例如:python manage.py runserver 127.0.0.1:8000
-
Pycharm启动
-