Python初始化django项目并且连接MySQL数据库

545 阅读2分钟

1.初始化项目

两种方式 1.IDE创建 image.png 2.命令行创建

django-admin startproject '项目名称'

2.创建数据库

image.png

3.配置连接数据库

'ENGINE': 'django.db.backends.mysql',
'NAME': 'django0315orm',
'USER': 'root',
'PASSWORD': 'admin123',
'HOST': '127.0.0.1',
'PORT': 3306

image.png

4.创建模型层(class)

必须继承于modules.Model,也就是ORM框架(Object-Relational-Mapping),通过该类操作数据库.只需要面向对象,不必担心数据库sql语句,会损失一定的损失(对于复杂的业务)

image.png

5. 创建一个应用(图书管理:bookstore)

python manage.py startapp bookstore

创建应用,并注册应用 image.png

6.创建应用类(以便对应数据库中的相应表)

在创建的应用中,找到modles.py文件,编写相应的模型类.

class BookStore(models.Model):
  book_name = models.CharField(verbose_name='书名', max_length=50, default='')
  book_prize = models.DecimalField(verbose_name='价格', max_digits=7, decimal_places=2)

该类将会映射一张数据库中的表. image.png

7.数据库迁移()

image.png

python manage.py makemigrations

到这一步表示创建关系成功 image.png

python manage.py makemigrations

出现红色部分及创建成功表(其他的为django内置的其他模型相关表结构) image.png

8.查看数据库(创建成功)

image.png

image.png

9.在模型中添加一个字段 (添加一个描述信息字段:desc_info)

#模型类代码新增:
desc_info = models.CharField(verbose_name='描述信息', max_length=300, default='')

#执行命令:
python manage.py makemigrations

image.png

#再次执行以下命令,同步数据库表:
python manage.py makemigrations

image.png 再次查看数据库

image.png

10.模型类-字段选项(注意)

注意: 字段选项,指定创建的列的额外的信息 允许出现多个字段选项,多个选项之间使用,隔开

  • primary_key 如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数库表不会创建id字段
  • blank 设置为True时,字段可以为空。设置为False时,字段是必须填写
  • null 如果设置为True.表示该列值允许为空,默认为False,如果此选项为False建议加入default选项来设置默 认值
  • default default设置所在列的默认值,如果字段选项nul=False建议添加此项

image.png

image.png

image.png 好习惯:修改过字段选项「添加或更改)均要执行makemigrations和 migrate

11.修改表名

直接创建类模型时,生成的表的表名为:"应用名称"_"定义的类的小写"作为表名,比如之前创建的应用是:bookstore,类名称是:BookStore,最后生成的表名称为:bookstore_bookstore,现在想改这个表名称,通过使用内部类Meta修改,在定义的类中新增Meta类,为db_table赋值即可,重新运行第七步.

# 通过内部类修改表名
class BookStore(models.Model):
  book_name = models.CharField(verbose_name='书名', max_length=50, default='')
  book_prize = models.DecimalField(verbose_name='价格', max_digits=7, decimal_places=2)
  desc_info = models.CharField(verbose_name='描述信息', max_length=300, default='')
  class Meta:
    db_table='books'

再次执行数据迁移命令:

python manage.py makemigrations
python manage.py migrate  

image.png 修改成功: image.png

完工:基本效果已经完成,操作数据库数据下篇继续.