Python-Django开发笔记
Django基础
虚拟环境选择
虚拟环境选择pipenv
pipenv的虚拟环境是和目录绑定的,不像conda的虚拟环境是可以直接通过conda env list查看所有虚拟环境并且随意分配的
- 全局安装:pip install pipenv
创建虚拟环境
- cd 到项目目录
- 项目创建虚拟环境:在项目路径下 pipenv install 或者 pipenv shell(自动创建)
pipenv常用命令:
- 进入:pipenv shell(若当前目录没有虚拟环境,会自动创建)
- 退出虚拟环境:exit
- 卸载包:pipenv uninstall xxx
- 查看安装包的依赖关系: pipenv graph
Django安装,创建项目
- pip install django 或者指定版本 pip install django==3.7.1
- 验证是否安装成功:
- django-admin
- python -m django –version
- 创建django项目:django-admin startproject mysite
- cd到django项目目录,python manage.py runserver
Django目录介绍
1 |
|
Django基本命令:
- startproject:创建一个Django项目
- startapp:创建一个Django应用
- check 校验项目完整性
- runserver:本地运行项目
- shell:进入python shell环境
- test:用例测试
- makemigrations: c创建模型变更的迁移文件
- migrate:执行上一个命令创建的迁移文件
- dumpdata: 数据库数据导出到文件
- loaddata:把文件数据导入到数据库
项目目录介绍:
- settings.py: 项目配置文件
- urls.py: 项目路由配置文件
- manage.py: 项目管理文件
踩坑记录:
- 如果适用的anaconda的python,那么startproject会报错:ImportError: DLL load failed while importing _sqlite3: 找不到指定的模块
解决方案: https://blog.csdn.net/sayWhat_sayHello/article/details/114464801
Django创建应用
一个Django项目可以有多个应用
Django创建应用:
python manage.py startapp xxxx
应用目录介绍:
- views.py: 视图处理
- models.py: 定义应用模型
- admin.py: 定义Admin模块管理对象
- apps.py: 声明应用
- tests.py: 编写测试用例
- urls.py: (自行创建) 管理应用路由
踩坑记录:
- import blog.views 报红但是可以运行
解决方案:如果是同一级目录,直接import views 或者from . import views - http://localhost:8000/ 报错
解决防范:设置完自己的路由后,此时根目录无法展示出欢迎界面了,属于正常情况
Django模型层
模型层简介
- 模型层位于Django视图层和数据库之间
- Python对象和数据库表之间转换
为什么需要模型层,而不是直接操作数据库
- 屏蔽不同数据库之间的差异,开发更加专注于业务逻辑开发
- 提供很多便捷工具有助于开发
模型层数据库的配置
settings.py DATABASES字段
模型层定义字段
数字类型:IntegerField
文本类型:TextField
日期类型:DateTimeField
自增id: AutoField
主键定义:primary_key属性
models.py 直接新建一个类(继承models.Model)
然后定义好字段和键信息
之后进行模型迁移,保存到数据库中
python manage.py makemigrations //生成迁移文件
python manage.py migrate //运行迁移文件
Django shell
为什么需要使用Django shell
方便开发,方便调试
python manage.py shell 进入Django shell 环境
Django Admin
便于增删改查的操作
使用:
- python manage.py createsuperuser //创建超级管理员用户
- python manage.py runserver //启动Django项目
- 模型注册到admin中
1
2from .models import Article
admin.site.register(Article) - 修改模型层,让对象在admin后台里显示名字
1
2def __str__(self):
return self.title
Django REST framework
quickstart
这里要注意,一般django-admin startproject xxx 是创立一个项目,然后在项目里创建一个与项目同名的应用
这里django-admin startproject tutorial . # Note the trailing ‘.’ character
是在当前目录创建应用,所以项目和应用合并,这看起来很不寻常。使用项目的命名空间可避免与外部模块发生名称冲突
Django ORM
基本介绍
ORM (Object-Relational Mapping)
对象自动持久化到关系型数据库当中,业务逻辑层和数据库层之间的桥梁
Django ORM中
ORM – DB
类 <–> 数据表
对象 <–> 数据行
属性 <–> 字段
模型类 models.py
优势:提高业务逻辑效率
缺点:影响性能
字段类型和参数
常用字段
1 |
|
关系型字段
一对一(OneToOneField);
多对一(ForeignKey);
多对多(ManyToManyKey),默认中间表.
1 |
|