新手学习django创建数据库时,经常因为设置不当或者操作步骤不对而状况百出。这里梳理一下主要步骤和注意重点和大家共同学习。这里以sqlite数据库为例。
首先,在创建完成项目和项目文件后,要将创建的文件添加到settings.py文件中的INSTALLED_APPS列表中,完成新建文件注册。
第二步,编写models.py文件。这一步尤其要注意代码书写细节,一个单词或者标点符号写错就会造成映射文件生成错误。例如:choices不要漏掉s,length不要写成lenght等等。
from django.db import models
# Create your models here.
class Department(models.Model):
'''部门表'''
title = models.CharField(verbose_name='标题',max_length=16)
class Admin(models.Model):
'''员工表'''
username = models.CharField(verbose_name='姓名',max_length=32)
password = models.CharField(verbose_name='密码',max_length=64)
gender = models.IntegerField(verbose_name='性别',choices=[(1,"男"),(2,'女')])
age = models.PositiveIntegerField(verbose_name='年龄',null=True,blank=True)
department = models.ForeignKey(verbose_name='部门',to='Department',on_delete=models.CASCADE)
class Phone1(models.Model):
'''号码表'''
mobile = models.PositiveIntegerField(verbose_name='号码')
price = models.SmallIntegerField(verbose_name='价格',default=0)
level = models.SmallIntegerField(
verbose_name='级别',
choices=[(1,'1级'),(2,'2级'),(3,'3级')],
default=1
)
status_choice =[(1,'已使用'),(2,'未使用')]
status = models.SmallIntegerField(verbose_name='状态',choices=status_choice,default=1 )
admin = models.ForeignKey(verbose_name='管理员',to='Admin',on_delete=models.CASCADE)
第三步,生成迁移映像数据。这一步是调用生成了数据库db.sqlite3和可供迁移的数据而并非用影像数据生成了带有数据的数据库。
生成的可供迁移的数据0001_initial.py详细内容如下:
# Generated by Django 4.1.5 on 2023-10-28 13:49
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Admin',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('username', models.CharField(max_length=32, verbose_name='姓名')),
('password', models.CharField(max_length=64, verbose_name='密码')),
服务器托管网 ('gender', models.IntegerField(choices=[(1, '男'), (2, '女')], verbose_name='性别')),
('age', models.PositiveIntegerField(blank=True, null=True, verbose_name='年龄')),
],
),
migrations.CreateModel(
name='Department',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=16, verbose_name='标题')),
],
),
migrations.CreateModel(
name='Phone1',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=服务器托管网False, verbose_name='ID')),
('mobile', models.PositiveIntegerField(verbose_name='号码')),
('price', models.SmallIntegerField(default=0, verbose_name='价格')),
('level', models.SmallIntegerField(choices=[(1, '1级'), (2, '2级'), (3, '3级')], default=1, verbose_name='级别')),
('status', models.SmallIntegerField(choices=[(1, '已使用'), (2, '未使用')], default=1, verbose_name='状态')),
('admin', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.admin', verbose_name='管理员')),
],
),
migrations.AddField(
model_name='admin',
name='department',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.department', verbose_name='部门'),
),
]
最后,运行migrate命令将映像数据写入到数据库
查看数据库,新建的admin、department和phone1三个数据表已经生成。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
无人直播带货手机软件是一款,专业的直播带货软件程序,它的强大好处就在于使用,设置简单,商家看一遍教程就能实现操作。 该软件在使用时具有很好的稳定性,系统软件随时调用用户的问题,让用户得到解决。直播时不会出现卡顿,掉线情况,支持多种的录音。按照用户自己的需求录制…