Python3:使用Django创建web应用出现的坑(Django Admin 管理工具的使用)

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中!

扫描二维码关注公众号,回复: 8723952 查看本文章

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的名称 (创建表结构)

以上纯属个人见解,如有问题请联系本人!

发布了215 篇原创文章 · 获赞 39 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45492007/article/details/103297705