1.sqlite3中没有角色和权限表
由于本人创建了一个Django项目,它默认使用的数据库为sqlite3,但是又有一个admin的界面:http://127.0.0.1:8000/admin/
,登录出现错误,发现是当前的sqlite3中没有任何的数据存在,也不存在任何的表,下面是解决办法
1.使用命令行切换到当前的项目下于当前的manage.py同级
2.使用命令:python manage.py migrate(更新并创建对应的数据表)
3.执行完成后:
4.由于查看了当前的auth_user中没有数据所以肯定不能登录
所以执行命令创建超级管理员账号:python manage.py createsuperuser
5.最后可以登录,结果为:
2.按照菜鸟教程中创建的模块不能在页面显示
由于本人在菜鸟教程中使用了模块但是不知道怎么导入模块:菜鸟教程中的教程
1.创建一个模块使用:切换到cmd到manage.py 同级使用:django-admin startapp webapp(创建一个webapp模块)
结果如下:
发现其中具有models.py(这就是菜鸟教程中的写实体类的地方)
2.在models.py中编写菜鸟教程的类
from django.db import models
# Create your models here.
class Test(models.Model):
name = models.CharField(max_length=20)
class Contact(models.Model):
name = models.CharField(max_length=200)
age = models.IntegerField(default=0)
email = models.EmailField()
def __unicode__(self):
return self.name
class Tag(models.Model):
contact = models.ForeignKey(Contact, on_delete=models.CASCADE, )
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
3.在admin.py中注册组件
from django.contrib import admin
from webapp.models import Test, Contact, Tag
# Register your models here.在这里注册当前的模块
admin.site.register([Test, Contact, Tag])
4.解决模块不显示的问题:当前的模块没有在当前的settings.py中添加
添加的内容为:
webapp中的apps中的内容:
上面的意思就是将webapp这个模块添加到当前的项目结构中,就可以在页面上访问了
结果:
解决成功!就是需要将当前创建的模块加入到当前的settings中的INSTALLED_APPS中!
3.发现添加的模块对应的表在数据库中没有
没有数据表存在,但是页面上却可以显示,点击后报错
所以需要更新模块,让当前的项目自动创建对应的数据表(需要使用命令行切换到当前的项目的manage.py的同级中)
1.错误的操作:manage.py migrate
2.正确的操作:
2.1 告知当前的Django我们添加了新的app模块:manage.py makemigrations webapp
2.2 让Django为我们创建表结构(创建表):manage.py migrate webapp
结果:
操作成功!
4.再次访问web页面
5.执行添加数据操作
添加的结果:
发现当前的操作全部是自动完成的,包括添加修改删除都自动完成,这个真的很强大!
6.总结
1.使用命令行切换到manage.py同级下
2.如果启动的时候缺少auth_user表需要执行:python manage.py migrate
3.创建app的时候需要使用:django-admin startproject app的名称
4.创建完成后需要将这个使用的app模块加入到settings中的INSTALLED_APPS中
5.在创建好的app中的models.py中创建了类的映射需要让Django知道我们添加了模块,有模块需要更新:python manage.py makemigrations app的名称,python manage.py migrate app的名称 (创建表结构)
以上纯属个人见解,如有问题请联系本人!