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

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.lryc.cn/news/471473.html

相关文章:

  • 使用AMD GPU和LangChain构建问答聊天机器人
  • 2024年808数据结构答案
  • Amazon Linux 2023 安装 Docker
  • 接口测试(八)jmeter——参数化(CSV Data Set Config)
  • GGD证明推导学习
  • Flink难点和高频考点:Flink的反压产生原因、排查思路、优化措施和监控方法
  • Swarm - Agent 编排工具
  • 使用Python中的jieba库进行简单情感分析
  • `pip` 下载速度慢
  • 【WRF数据准备】基于GEE下载静态地理数据-叶面积指数LAI及绿色植被率Fpar
  • 网管平台(进阶篇):网管软件的配置方式
  • 推荐系统中的AB测试
  • .NET 8 Web API 中的身份验证和授权
  • Vue弹窗用也可以直接调用Js方法了
  • 【c语言测试】
  • 一种将树莓派打造为游戏机的方法——Lakka
  • 如何在 MySQL 中创建一个完整的数据库备份?
  • 京准电钟HR-901GB双GPS北斗卫星时钟服务器
  • uniapp使用websocket
  • 基于Pycharm和Django模型技术的数据迁移
  • 乐尚代驾-----Day10(订单三)
  • 105. 聚光源SpotLight
  • 系统接口权限拦截器,获取用户信息存储
  • Chromium HTML5 新的 Input 类型color 对应c++
  • 问:SQL中的通用函数及用法?
  • .NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)
  • Chromium HTML5 新的 Input 类型date 对应c++
  • ZooKeeper的应用场景:深入探讨分布式系统中的多样化应用
  • 【Vue3】第四篇
  • Chromium HTML5 新的 Input 类型tel对应c++