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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

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随风 - 博客园

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go