当前位置: 首页 > article >正文

Django创建项目模块+创建映射类+视图

确保你的项目已经正确链接数据库

链接数据库的工具有很多,数据库的种类也有很多,我使用的数据库是mysql,工具是pmysql,使用pymysql链接数据库,在settings文件中这么设置:

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': BASE_DIR / 'db.sqlite3',
    # }
#默认链接的数据库
'default': {
        #数据库驱动(用于程序操作数据库的程序)建立管道
        'ENGINE': 'django.db.backends.mysql',
        'NAME':  'trip_django',
        'USER':  'root',
        'PASSWORD':  'mima',#你的密码
        'HOST':  '127.0.0.1',#数据库的ip地址
        'PORT':  '3306'#数据库端口号
    }
}

一、创建项目模块

在项目路径下打开命令提示符窗口

输入:

python manage.py startapp system

创建了system模块。 

在settings文件中引入该模块:

 模块名.apps.首字母大写的模块名Config

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'system.apps.SystemConfig',#刚刚创建的system模块

]

二、创建映射类

在模块下的models文件下创建映射类

案例

from django.db import models


#数据库中表的映射类,根据该文件构建及操作数据库
class Slider(models.Model):
    
    name=models.CharField('名称',max_length=32)
    

    class Meta:
        db_table='system_slider'
        ordering=['-reorder']#默认排序规则

在案例slider类中有一个name属性,也就是对应数据库中有一个slider表和一个name列,如果想创建多个列,语法与name一样,但注意:name是char类型。若想创建整型需要使用:models.SmallIntegerField()还有其他类型,括号中是用来定义列的属性的,例如上述案例定义max_length是定义最大长度。

还有更多列类型和属性请参考下一篇文章。

三、创建视图

from django.shortcuts import render
from django import http
from django.http import HttpResponse
from system.models import Slider


# Create your views here.
#创建视图函数用于返回轮播数据列表
def slider_list(request):
    #规范相应数据结构
    data={
        'meta':{

        },
        'object':[]
    }
    #过滤数据源,is_valid为真则取出
    queryset=Slider.objects.filter(is_valid=True)
    #对过滤后的数据进行遍历
    for item in queryset:
        data['object'].append({
            'id':item.id,
            'img_url':item.img.url,
            'target_url':item.target_url,
            'name':item.name
        })
    return http.JsonResponse(data)

上述代码实现了将is_valid列有值的数据返回给queryset,然后将queryset的id、img_url、target_url、name值返回给data。然后 返回给浏览器。

四、创建数据模型

当模块和映射类都创建好后,可以开始创建数据模型:

检查
python manage.py check
创建模型
python manage.py makemigrations
生成数据结构
python manage.py migrate

这样就可以将映射类创建为表。


http://www.kler.cn/a/374231.html

相关文章:

  • 执行Django项目的数据库迁移命令时报错:(1050, “Table ‘django_session‘ already exists“);如何破?
  • ‌Linux tac命令‌
  • Flask
  • [Wireshark] 使用Wireshark抓包https数据包并显示为明文、配置SSLKEYLOGFILE变量(附下载链接)
  • 【AI开源项目】OneAPI -核心概念、特性、优缺点以及如何在本地和服务器上进行部署!
  • 探索开源语音识别的未来:高效利用先进的自动语音识别技术20241030
  • 拍拍贷鸿蒙版H5容器之路
  • axios源码分析之请求adapter
  • 【Python】实战:使用input()从键盘获取一个字符串,判断这个字符串在列表中是否存在(函数体不能使用in),返回结果为True或False
  • Mysql的行锁,改一行锁一行
  • 使用 LIBLR 解析带注释的 JSON
  • echarts地图,柱状图,折线图实战
  • ML 系列:第 18 部 - 高级概率论:条件概率、随机变量和概率分布
  • 【MyBatis源码】SqlSessionFactoryBuilder源码分析
  • 从零开始的c++之旅——C++ 类和对象(下)
  • C++学习笔记3——存储持续性、作用域和链接性
  • Web应用程序安全与风险
  • C++——String类讲解
  • Linux下的pipe函数详解
  • 干货--并发编程提高-计算CPU利用率(二十二)
  • smartconnect base_addr offset_addr
  • WPF中如何解决DataGrid的Header没有多余的一行
  • echart实现地图数据可视化
  • 计算机系统中的文件和文件夹
  • Nop平台核心代码阅读导引
  • gem5运行简单RISC-V全系统模拟