Django数据库 可以使用界面直接对数据进行操作呦!!!

先假设一个例子

我们创建了一个关于网络文章这样的一个数据库  里面都会有哪些表?,表里会有什么字段呢?

所以  我们先列出此项  

直接列出  

Article(文章)  

      Title       Author (外键)     Time    Description    Content   Picture   TypeID

Type(类型)

      Label     description

Author(作者)

      Name   Birthday   Email   Phone   Photo   address

Picture(图片)

      Lable      Image

Message (留言)

      Content   Time    messager

就这么多吧  写起来好弄一点

先给大家展示一下效果

分为几个界面

觉得怎么样   一起创建吧

Django 模型搭建

Django鼓励开发者进行松耦合开发不能把所有的功能放到项目的根下,,而是,将功能分成具体的块,块被成为APP。只有在app当中才可以利用django进行数据建模,django进行诗句建模,

Django 采用了成熟的ORM数据库建模技术,方便,快捷,直观。

1、创建app

1、在当前目录(manage.py所在的目录)的命令行当做启动虚拟环境

Activate DjangoPath

2、切入django项目的manage.py的目录

Python manage.py startapp appName(Article)

3、app的结构

Migrations 数据库记录文件

__init__.py 包文件

__init__.py 包文件

Admin.py 后台管理文件

App.py 应用管理文件

Models.py 模型文件(数据库)

Test.py 单元测试文件

Views.py 试图文件

数据库建模

在app当中的models文件里进行数据库建模

Class 表名(models.Model):

字段 = models.类型(参数)

from django.db import models


class Type(models.Model):
    label = models.CharField(max_length=32)  # label char 30
    description = models.TextField()


class Author(models.Model):
    name = models.CharField(max_length= 32)
    age = models.IntegerField()
    birthday = models.DateField()
    email = models.EmailField()
    phone = models.CharField(max_length=32)
    photo = models.ImageField(upload_to="images")
    address = models.TextField()


class Article(models.Model):
    title = models.CharField(max_length=32)
    author = models.ForeignKey(to=Author,on_delete=models.CASCADE)
    time = models.DateField()
    description = models.TextField()
    content = models.TextField()
    picture = models.ImageField(upload_to="images")
    type = models.ManyToManyField(to=Type)


class Picture(models.Model):
    label = models.CharField(max_length=32)
    image = models.ImageField(upload_to="images")


class Message(models.Model):
    content = models.TextField()
    time = models.DateField()
    messager = models.CharField(max_length=32)

# Create your models here.

CharField 字符串

max_length 长度

TextField 文本类型

DataField 时间 年月日

DataTimeField 时间 年月日时分秒

ImageField 图片,

Upload_to 上传地址

必须安装pillow模块

EmailField 邮箱,符合邮箱地址格式的字符串

IntegerField 数字 整数

2 然后我们配置settings

1、安装app

2、数据库配置

django默认使用sqllite3数据库,所以在这里我们可以修改来想使用的数据库,早这里我用mysql (在项目主目录中的__init__中配置)

同时要在settings中修改成为mysql数据库,填入自己创建的数据库要添加相关数据库的参数.(此步骤在创建完数据库之后执行)

Django mysql配置

1、在数据库当中创建对应的数据库

2、时区和语言

3、媒体配置(用于图片上传)

在setting的最后添加,

media_url媒体文件前端的路由,不可以和static_url一样

MEDIA_ROOT 媒体文件上传的根目录,会和imagefield 当中的upload拼接形成完整的上传路径

Media_url 媒体文件前端的路由,不可以和STATIC_URL一样

MEDIA_ROOT 媒体文件上传的根目录,会和imageField当做的upload拼接形成 完整的上传路径

需要注意的是:

在setting中需要提前修改两个地方的配置

1

2

数据库同步

1、Django校验

Python manage.py check(validate)

2、数据库语句生成

Python manage.py makemigrations

3、数据库同步

Python manage.py migrate

django admin 后台

admin 是django官方定义的一个完整版的后台系统,在我们下载django的同事下载下来了

创建admin后台管理系统的超级用户

python manage.py createsuperuser

在app当中的admin文件中注册数据表

登录/admin 路由操作

在数据库类中添加 def__str__方法,来加强实例的可读性

Admin后台可以在admin文件当中进行样式定制

定义类继承admin.ModelAdmin类,然后在当中使用字段进行样式调整和功

能添加

List_display 列表页展示的字段

List_per_page 单页展示的数据条数(分页)

Ordering 排序

List_editable 列表页可以编辑的字段

List_filter 过滤器

Search_field 搜索

Data_hierarchy 时间筛选

我们也可以用装饰器来注册表和样式

猜你喜欢

转载自blog.csdn.net/weixin_44303465/article/details/88935096
今日推荐