Django入门学习-了解基本模块

目录

MVT设计了解

认识MVT

实际操作

Template:

View:

路由配置

Model:

默认的后台管理模块

初始化admin模块

应用中Admin注册


MVT设计了解

认识MVT

Django的web设计模型是MVT:

  • Model:数据存储层,处理所有数据相关的业务,和数据库进行交互,并提供数据的增删改查;
  • Template:模板层(也叫表现层)具体来处理页面的显示;
  • View:业务逻辑层,处理具体的业务逻辑,它的作用是连通Model 层和 Template 

相关的模型可以参考Django MTV和MVC的区别 

实际操作

Template:

在Template中创建test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{vaule}}
</body>
</html>

View:

在刚才创建的blog应用目录下的views.py中添加以下代码,使用render将对用值渲染到html页面中

from django.shortcuts import render      
def hello_my_django(request):
    return render(request,"test.html",{"vaule":"hello my Django"})

路由配置

在djangoProject的urls.py中可以配置路由

4.0之前引入url模块的方式:

from django.conf.urls import url

  url(regex,view,name=None)

4.0之后可以直接

from django.urls import path
path('test',views.hello_my_django),

 4.0后如果还想用url正则匹配可以使用以下方式引入

   from django.urls import re_path as url

或者放到首页path('',views.hello_my_django),

上述 url 的参数解析如下:

  • regex,匹配请求路径,用正则表达式表示;
  • view,指定 regex 匹配路径所对应的视图函数的名称;
  • name,是给 url 地址起个别名,在模板反向解析的时候使用

配置好后测试test路由

Model:

所有的 Model 都必须继承自django.db.models.Model,在blog的models中添加以下内容,class名在ORM框架中对应数据库表中的表名,变量名对应数据库中表的字段,如title等

class Book(models.Model):  #创建 book 表
    title=models.CharField( max_length=30,unique=True, verbose_name='书名')
    public=models.CharField(max_length=50,verbose_name='出版社')
    price=models.DecimalField(max_digits=7,decimal_places=2,verbose_name='定价')
    def default_price(self):
         return '¥30'
    retail_price=models.DecimalField(max_digits=7,decimal_places=2,verbose_name='零售价',default=default_price)

    def __str__(self):
        return "title:%s pub:%s price:%s" % (self.title, self.public, self.price)

class Author(models.Model): #创建作者表
    name=models.CharField(max_length=30,verbose_name='姓名')
    email=models.EmailField(verbose_name='邮箱')

    def __str__(self):
        return '作者:%s'%(self.name)

class UserInfo(models.Model): #创建用户信息表
    username=models.CharField(max_length=24,verbose_name='用户注册')
    password =models.CharField(max_length=24,verbose_name='密码')

然后在终端执行

python manage.py makemigrations
python manage.py migrate

可以看到已经创建了对应的三张表

 在执行完python manage.py makemigrations后,在应用目录下会有一个migrations目录,记录数据库信息以便以后迁移,可以通过python manage.py sqlmigrate + 应用名 + 编号查看转换对应的sql语句

python manage.py sqlmigrate blog 0001_initial 

默认的后台管理模块

上节创建完djangoProject项目后

打开改项目文件夹下的urls.py,发现已经注册了并引入了admin模块

因为没有初始化,所以无法登录

初始化admin模块

python manage.py createsuperuser

遇到报错:

django.db.utils.OperationalError: no such table: auth_user

可以使用 python manage.py migrate 先创建数据库

可以看到数据库中多了这几张表 

然后创建管理员账户

python manage.py createsuperuser

这里账户密码为admin/123456

对应表中也会多出相应的记录 

 完事可以登录了

应用中Admin注册

在应用中修改

from django.contrib import admin

# Register your models here.
from blog.models import Book, Author,UserInfo #这个需要我们自己导入相应的模型类(数据表)
admin.site.register([Book,Author,UserInfo])

启动应用后,可以看到刚才的Book, Author,UserInfo模块已经注册到了管理后台,可以可视化添加数据库记录了

 

参考:

Django模板系统

django框架极速入门指南-02 - dd随风 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值