当前位置:网站首页>【邂逅Django】——(二)数据库配置
【邂逅Django】——(二)数据库配置
2022-07-01 12:35:00 【51CTO】
邂逅Django - 目录
Part 2:【邂逅Django】—— (二)数据库配置
️ Part 3:【邂逅Django】—— (三)视图
️ Part 4:【邂逅Django】—— (四)表单和通用视图
️ Part 5:【邂逅Django】—— (五)完善界面(自定义界面和样式)
️ Part 6:【邂逅Django】—— (六)自定义管理界面
️ Part 7:【邂逅Django】—— (七)自动化测试
文章目录
- 邂逅Django - 目录
- 前言
- 一、项目配置文件`settings.py`
- 二、创建模型
- 三、激活模型
- 四、初试API
- 五、`Djaong`管理界面
- 六、【`PyCharm`使用小技巧】
- 七、最简单的美化Django Admin
- 总结
前言
本系列文章,在Django
官方文档教程的基础模板下,进行了一定的改进和删除,添加了一些自己的见解。
希望大家看完该系列文章后,对Django
能够有一个清晰的认识。
路漫漫兮其修远兮,吾将上下而求索!
Django
官方文档: https://www.djangoproject.com/
学习过程中,多看官方文档,可以解决很多问题
本教程使用
poetry
对项目环境进行管理。
相关poetry
的安装与使用,请参考 【Python - 虚拟环境】项目的启动,从隔离开发环境开始_CoderChaos的技术博客_51CTO博客
一、项目配置文件settings.py
1.1 数据库配置
mysite/settings.py
,是个包含了Django
项目设置的Python
模块。
数据库的配置,在于变量DATABASES
。
Django
默认使用SQLite
作为默认数据库。Python
内置SQLite
,所以无需安装额外的东西就可以使用。
如果做一个真正的项目,最好不要使用SQLite
。
参数说明:
default
:Django
连接数据库时,默认链接default
下的数据库。ENGINE
:有多个可选值django.db.backends.sqlite3
django.db.backends.postgresql
django.db.backends.mysql
django.db.backends.oracle
- 其他第三方数据库后端。 参考地址
NAME
:数据库的名称。如果使用SQLite
,数据库将是电脑上的一个文件。默认值BASE_DIR / 'db.sqlite3'
,将把数据库存储在项目的根目录。- 其他参数:如果不使用
SQLite
,则必须添加一些额外设置,比如USER
、PASSWORD
、HOST
等等。 参考文档
注意:如果使用
SQLite
以外的数据库,需要确认在使用前已经创建了数据库。可以通过在你的数据库交互式命令行中使用CREATE DATABASE database_name;
来完成数据库的创建。
1.2 时区和语言
可以在settings.py
文件中,修改时区和语言。
1.3 Django
默认的自带应用简介
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
:管理静态文件的框架
默认开启的某些应用需要至少一个数据表,所以,在使用它们之前需要在数据库中创建一些表。需要执行以下命令:python manage.py migrate
二、创建模型
定义模型,也就是数据库结构设计和附加的其他元数据。
在这个投票应用中,需要创建两个模型:问题Question
和选项Choice
。
Question
模型包括问题描述和发布时间。Choice
模型包括选项描述和当前得票数。每个选项属于一个问题。
创建模型,继承django.db.models.Model
;每个模型有许多类变量,都表示模型里的一个数据表字段。
每个字段都是Field
类的实例。
说明:
Django
可以为应用创建数据库表(CREATE TABLE
)Django
可以创建与Question
和Choice
对象进行交互的Python
数据库API
三、激活模型
Django
应用是“可插拔”的。
添加polls
应用
现在,Django
项目已经包含polls
应用。
运行命令makemigrations
,进行一次迁移:python manage.py makemigrations
运行makemigrations
命令,Django
会检测模型文件的修改,并且把修改的部分存储为一次迁移。迁移是Django
对数据结构变化的一次存储。
migrate
是自动执行数据库迁移并同步管理数据库结构的命令。
因此,执行makemigrations
之后,要想修改在数据库做出同步,需要再次执行python manage.py migrate
。
迁移是非常强大的功能,能够在开发过程中持续的改变数据库结构而不需要删除表和重新创建表。
它专注于数据库平滑升级而不会丢失数据。
改变模型需要以下步骤:
- 编辑
models.py
文件,改变模型 - 运行
python manage.py makemigrateions
为模型的改变生成迁移文件 - 运行
python manage.py migrate
应用数据库迁移
四、初试API
4.1 Django
交互式命令的基本使用
进入Django
交互式命令行:python manage.py shell
对于Question
返回的显示数据,可以通过编辑Question
模型代码进行修改,给Question
和Chioce
增加__str__()
方法。
再次进入Django交互式命令行:python manage.py shell
4.2 给模型添加自定义方法
再次进入Django交互式命令行:python manage.py shell
五、Djaong
管理界面
管理界面不是为了网站的访问者,而是为管理者准备的。
5.1 创建一个管理员帐号
在命令行运行以下命令:python manage.py createsuperuser
之后会提示,输入用户名、邮箱、密码、确认密码。
5.2 登录管理界面
启动开发服务器:python manage.py runserver
打开浏览器: http://127.0.0.1:8000/admin/
输入帐号和密码,即可进入管理界面。
5.3 向管理页面增加投票应用
5.4 体验便捷的管理功能
点击页面中的按钮,即可使用增删改查功能。
六、【PyCharm
使用小技巧】
6.1 使用PyCharm
的工具运行makemigrations & migrate
6.2 使用PyCharm
运行django shell
在PyCharm
底部工具栏,选择Python Console
即可进入python manage.py shell
。
前提条件:项目启动
Django
支持。项目启动
Django
支持见: 【邂逅Django】——(一)创建项目_CoderChaos的技术博客_51CTO博客四、【PyCharm 使用小技巧】
相比于从Terminal
通过python manage.py shell
进入Django shell
,输入会有一定的提示。
七、最简单的美化Django Admin
7.1 simpleui
简介
Django Admin默认界面设计语言存在着的一些不足,比如色彩单一,大量线条的使用,分割化明显。将这些不足归类一下就是界面单调、雷同性明显、缺少惊喜。
simpleui
:一款基于vue+element-ui的django admin现代化主题。
GitHub地址: https://github.com/newpanjing/simpleui
7.2 simpleui
使用
7.2.1 安装
7.2.2 开始使用
安装完成后,在自己项目的settings.py
文件中INSTALLED_APPS
的第一行
加入simpleui。
如果之前的服务还在运行,刷新页面即可。
总结
本文简单介绍了Django
与数据库的连接与使用,默认后台管理界面的使用。
以及使用PyCharm
快捷运行makemigrations & migrate
命令和django shell
,使用django-simpleui
美化默认后台管理界面。
边栏推荐
- [Yunju entrepreneurial foundation notes] Chapter 7 Entrepreneurial Resource test 4
- Ansi/ul 94 VTM vertical burning test for thin materials
- [datawhale202206] pytorch recommendation system: precision model deepfm & DIN
- BIM and safety in road maintenance-buildSmart Spain
- Operations related to sequence table
- GPS 数据中的精度因子(DOP)与协方差之间的关系 (参考链接)
- Tencent security and KPMG released a regulatory technology white paper to analyze the "3+3" hot application scenarios
- redis探索之缓存一致性
- Onenet Internet of things platform - create mqtts products and devices
- JPA and criteria API - select only specific columns - JPA & criteria API - select only specific columns
猜你喜欢
[Yunju entrepreneurial foundation notes] Chapter VII Entrepreneurial Resource test 1
[Yunju entrepreneurial foundation notes] Chapter 7 Entrepreneurial Resource test 8
[datawhale202206] pytorch recommendation system: precision model deepfm & DIN
Typora adds watermarks to automatically uploaded pictures
被锡膏坑了一把
[20211129] configuration du serveur distant du carnet de notes jupyter
Machine learning - Data Science Library - day two
STM32 project practice (1) introduction and use of photosensitive resistor
[brain opening] west tide and going to the world series
Operations related to sequence table
随机推荐
華為面試題: 招聘
VS Code 设置代码自动保存
Typora adds watermarks to automatically uploaded pictures
Ansible的playbook
Sort out relevant contents of ansible
[Yunju entrepreneurial foundation notes] Chapter 7 Entrepreneurial Resource test 4
Wechat applet reports an error: [rendering layer network layer error] pages/main/main Local resource pictures in wxss cannot be obtained through wxss. You can use network pictures, Base64, or < image/
第十四章 信号(四)- 多进程任务示例
6.30模拟赛总结
[shell programming] - shell introductory learning
fatal error: execution: 没有那个文件或目录
Queue operation---
[datawhale202206] pytorch recommendation system: recall model DSSM & youtubednn
Ansi/ul 94 VTM vertical burning test for thin materials
Eurake partition understanding
ASTM D 3801 vertical burning test of solid plastics
MySQL的零拷贝技术
A hole in solder paste
华为面试题: 招聘
Huawei interview question: Recruitment