Django 3 + Angular 9 实战:电脑管理系统(2)

这篇博客介绍了如何在Django 3项目中配置MySQL数据库,包括创建用户、数据库及解决连接问题。此外,还详细讲解了设计数据库表的过程,利用Django ORM创建模型并执行迁移。在前端部分,讨论了如何使用Angular 9构建主页,包括添加Toolbar和SideNav组件,初步实现了导航栏框架和路由配置。
摘要由CSDN通过智能技术生成

Django 3 + Angular 9 实战:电脑管理系统(2)

这一节主要实现两个目标:

  1. Django与Mysql的连接
  2. 主页

配置MySQL

首先确认环境中已经安装MySQL:

$ mysql --version
### output 
mysql  Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using  EditLine wrapper

创建一个新的用户并授予其权限,替换下面命令中的USERNAME, PASSWORD:

mysql> CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'localhost';

然后用新创建的用户登陆后,创建需要的database:

mysql> CREATE DATABASE computerManagement;

检查一下是否创建成功:

mysql> show databases;
### output
+--------------------+
| Database           |
+--------------------+
| information_schema |
| computerManagement |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

配置Django连接MySQL:
在settings.py文件中找到DATABASES并修改配置。

DATABASES = {
   
    #  'default': {
   
    #      'ENGINE': 'django.db.backends.sqlite3',
    #      'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    #  }

    'default': {
   
            'ENGINE': 'django.db.backends.mysql', # Django内置的MySQL引擎
            'NAME': 'computerManagement', # 刚此新创建database的名字
            'USER': 'USERNAME', # 新创建的用户名
            'PASSWORD': 'PASSWORD', # 新创建的用户密码
            'HOST': '127.0.0.1', # 数据库地址,'127.0.0.1'或'localhost' 指需要连接的数据库在本地
            'PORT': '3306' # 数据库端口,3306为MySQL的默认端口
        }
}

这时就可以尝试启动Django服务:

# 切换到工作目录
$ python3 manage.py runserver 

如果出现下列信息:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

mysqlclient是使用python操作mysql必备的数据库驱动,如果之前没有安装过可以使用以下命令安装:

$ pip3 install mysqlclient

这时可能又会出现另一个错误:

    OSError: mysql_config not found
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

这个问题是由于没有安装libmysqlclient-dev这个依赖导致的,可以通过以下命令安装:

$ sudo apt-get install libmysqlclient-dev

成功之后,再次安装mysqlclient便可以成功。
这时再运行django服务:

$ python3 manage.py runserver
### output
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

May 29, 2020 - 02:45:39
Django version 3.0.6, using settings 'management.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

这时已经成功建立了和MySQL的连接,但是看到django提示有17个unapplied migrations,这是因为新创建的database中没有初始化django默认启用的基础设施例如Session, Auth, Admin,只需在命令行中输入:

$ python3 manage.py migrate

即可解决。


设计数据库表

这里需要使用到Django自带的ORM,它把对于数据库的操作都包装起来,在使用时将每个表看作一个对象的集合,用户只需要对对象进行操作便可以避开直接操作数据库。

Computer
Floor
Building

models.py
from django.core.validators import RegexValidator

# Create your models here.


class Building(models.Model):
    name = models.CharField(max_length=32)
    address = models.TextField()

class Floor(models.Model):
    building = models.ForeignKey( 'Building', on_delete=models.CASCADE)
    name = models.CharField(max_length=32)

class Computer(models
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值