一、安装django
1.建立虚拟环境
D:\learn_django>python -m venv ll_env(环境名称) --python=python3.6 #可以替换成电脑里其他python版本
D:\learn_django>python -m venv ll_env(环境名称) --python='C:\python\python3.6.exe' #可以直接使用路径查找
- virtualenv【推荐】可以兼容python2解释器
pip install virtualenv
创建方法一:
cd \xxx\xxx\ #进入目录
virtualenv 环境名称 --python=python3.9(系统中解释器) #创建虚拟环境
创建方法二:
virtualenv \绝对路径\环境名称 --python=python3.7 #直接创建虚拟环境
问题
- 虚拟环境什么时候放在项目目录下?什么时候放在别的地方?
多个项目共用 ->一个虚拟环境文件
单个项目 ->独立虚拟环境文件
2.打开项目
- 打开项目
- 手动创建虚拟环境(命令行)
- pycharm配置项目+环境关联
pycharm中找到settings,设置python解释器环境
激活虚拟环境
D:\learn_django\ll_env\Scripts\activate # Windows
[root@xxxx opt]cd ./ll_env/bin/ source activate #Linux
或者
source /ll_env/bin/activate
退出虚拟环境
D:\learn_django\ll_env\bin\activate
安装Django
(ll_env) pip install django==3.2
3.Pycharm安装Django指定版本
需要先创建python项目,再pip install指定版本django
查看pip安装包
生成环境配置文件
pip freeze > requirement.txt
自动安装环境文件
pip install -r requirement.txt
安装位置
d:\learn_django
- python.exe
- Scripts
- pip.exe
- django-admin.exe 【工具,创建django项目中的文件和文件夹】
- Lib
- 内置模块
- site-packages
- openpyxl
- python-docx
- flask
- django 【框架的源码】
4.创建项目
项目文件夹 mysite
django-admin startproject mysite . #这里输入"."可以创建项目在当前文件夹中,省去一级目录
文件结构
├─ manage.py 【项目的管理、启动、创建app、数据管理】 【不要动】
└─ mysite
├─ __init__.py
├─ setting.py 【项目配置】 【***常常操作***】
├─ urls.py 【URL和函数的对应关系】 【***常常操作***】
├─ asgi.py 【接受网络请求】 【不要动】
└─ wsgi.py 【接受网络请求】 【不要动】
5.创建App
应用app文件夹 app01
python manage.py startapp mysite
├─ app01
│ ├─ __init__.py
│ ├─ admin.py 【固定,不用动】django默认提供了admin后台管理
│ ├─ apps.py 【固定,不用动】app启动类
│ ├─ migrations【固定,不用动】数据库变更记录
│ ├─ └─ __init__.py
│ ├─ models.py 【***重要***】对数据库进行操作
│ ├─ tests.py 【固定,不用动】单元测试
│ ├─ views.py 【***重要***】URL所对应的函数
├─ manage.py
└─ mysite
├─ __init__.py 【初始化文件】
├─ setting.py 【项目部分配置,其他配置在django-admin中】【***常常操作***】
├─ urls.py 【主路由,URL和函数的对应关系】 【***常常操作***】
├─ asgi.py 【异步,接受网络请求】 【不要动】
└─ wsgi.py 【同步,主用,接受网络请求】 【不要动】
多app结构建议
projectfile
.venv #虚拟环境目录
projectfile
...
...
manage.py
apps #app文件夹
web #app项目
backend #app项目
api #app项目
纯净配置
settings.py
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
# 'django.contrib.contenttypes',
# 'django.contrib.sessions',
# 'django.contrib.messages',
'django.contrib.staticfiles',
]
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 = 'djangodrf.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
],