首页 > 其他分享 >5、Django-模型-models

5、Django-模型-models

时间:2024-07-01 22:46:43浏览次数:1  
标签:users models 模型 py Django app 路由 name

概念:

基本模板:模板 其实就是我们使用的HTML写好的页面

-- 先在应用的目录下创建模板文件夹templates、然后在templates中创建模板文件、如html

-- 最后在views.py中去渲染模板、使用render函数将模板返回给用户:return render(request, '.html')

 

 

定义模板:

-- 模板里就是要对数据库进行操作

#在models.py中引入models模块
from django.db import models

 

1、编写models.py
-----------------------------------------------------------------------------------
from django.db import models

#模型       <===>  对应表结构
#类属性     <===>  表字段
#对象       <===>  表的一行数据

#创建模型的类、固定写法
#userModel 表名
class UserModel(models.Model):
    #这里创建表的字段
    name = models.CharField(max_length=30, unique=True)     #对应sql中的: name  varchar(30)  unique=True:指定唯一性
    age = models.IntegerField(default=18)       #对应SQL中:age int default 18
    sex = models.CharField(max_length=20)       #对应SQL中的:sex varchar(20)
    is_delete = models.BooleanField(default=False)      #是否删除、显示在用户界面



#上面的表结构创建后需要将数据迁移到数据库
#注意:如果上面的表结构修改后、一定要重新执行数据的迁移

#  python manage.py makemigrations  #生成迁移的表文件
"""
#执行后提示:
Migrations for 'app_name':
  app_name\migrations\0001_initial.py    #0001_initial.py 生成的迁移文件的路径
    - Create model UserModel            #创建模型(表) :UserModel
"""

# python manage.py migrate         #将文件迁移到数据库
"""
#导入数据:
Apply all migrations: admin, app_name, auth, contenttypes, sessions
Running migrations:
  Applying app_name.0001_initial... OK      #说明导入成功
"""

#数据导入后手动加入数据
---------------------------------------------------------------------------------------------------------

2、编辑视图函数:views.py
---------------------------------------------------------------------------------------------
from django.shortcuts import render
from django.http import HttpResponse
from app_name.models import *           #导入模型models


#从数据库中获取用户信息的函数
def get_user_info(request):
    #模型操作:获取所有的用户信息
    #拿到的是数据表里的每条数据
    users = UserModel.objects.all()

    #返回渲染模板、模板在templates中创建users.html做显示
    #{使用字典去传参给html模板} 自定义key: 传入的value
    return render(request, 'users.html', {'users': users})
-------------------------------------------------------------------------------------------

3、编写html文件进行渲染
-- 在templates目录下创建 :users.html
-----------------------------------------------------------------------------------------
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户信息</title>
</head>
<body>
    <h2>sqlite中的用户信息</h2>
    <hr>
    <ul>
        //这里使用for循环遍历users拿到的值
        {% for user in users %}
        	<li>{{ user.name }}, {{ user.age }}, {{ user.sex }}</li>
        {% endfor %}

    </ul>
</body>
</html>
---------------------------------------------------------------------------------------------

4、编辑子路由:urls.py
-- 主路由在前面加了后可以不用管
--------------------------------------------------------------------------
from django.urls import path
from app_name.views import *

#这是一个子路由、子路由和主路由写法一样、直接在主路由调用即可
urlpatterns = [
    
    #获取用户信息的路由
    #'users/' 子路由访问的路径
    #get_user_info:访问视图views.py中的函数
    #name='users' :命名、可随意取
    path('users/', get_user_info, name='users'),

]
------------------------------------------------------------------------------

5、主路由:urls.py
-----------------------------------------------------------------------------
from django.urls import path, include
from app_name.views import *

urlpatterns = [

    #通过子路由调用视图函数
    #一个应用对应一个子路由
    #这里使用了include模块
    #这里有两层路由:先匹配app_name/ 、匹配成功后去到app_name应用下去找子路由usrls.py
    path('app_name/', include('app_name.urls'))

]
-----------------------------------------------------------------------------------------------------

 

导入表:

 

直接运行程序:

运行:python manage.py runserver

访问:http://127.0.0.1:8000/app_name/users/

标签:users,models,模型,py,Django,app,路由,name
From: https://www.cnblogs.com/littlecc/p/18111793

相关文章

  • 9、 Django-重定向-Redirect
    导入模块fromdjango.shortcutsimportredirect,reverse 概念:在视图函数中做跳转到其它页面 如:1、views.py---------------------------------------------------------------------------------fromdjango.shortcutsimportrenderfromApp_route.modelsimport*......
  • 8、 Django-路由-router-路由传参
    路由传递参数:通过在路由的后跟/<数据类型:参数>/  将参数传递给指定的视图函数views.py--这个参数可以是变量、而这个变量可以从html中获取 如:models.pyfromdjango.dbimportmodels#传教字段classUserModel(models.Model):name=models.CharField(max_leng......
  • 7、 Django-路由-router-页面跳转
    概念:在实际开发过程中、一个Django项目会包含很多的app、这时候如果我们只在主路由里进行配置就会显得杂乱无章、所以通常在每个app中创建各自的urls.py路由模块、然后从根路由出发、将app所属的url请求、全部转发到相应的urls.py模块而这个从主路由转发到各个应用的路由的过......
  • 10、 Django-模板-templates
     模板语法#模板中的变量语法:{{var}}如果变量不存在、则插入空字符串#方法不能有参数{{int}}{{str}}{{list}}{{list.0}}{{dict}}{{dict.a}}#dict['a']{{func}}#传递函数{{class_......
  • 12、 Django-模型models的基本操作-增删改查
    一般的数据库操作流程:1、创建数据库,设计表结构和字段2、连接Mysq1数据库,并编写数据访问层代码3.业务逻辑层去调用数据访问层执行数据库操作Diango通过Mode1操作数据库,不管你数据库的类型是MySql或者Sqlite,Django自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句......
  • 11、 Django-模型基础-models-ORM框架-管理器对象
     #概述django根据属性的类型确定以下信息当前选择的数据库支持字段的类型渲染管理表单时使用的默认htm1控件在管理站点最低限度的验证django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后则django不会再生成默认的主键列#属性命......
  • 理性决策的艺术:从购房到择偶的数学智慧;37% 规则,做出最佳决策的秘诀;用数学模型解决人
    在面对人生重大决策时,如购房或择偶,我们常常感到迷茫和困惑。然而,如果我们能够将这些看似复杂的问题简化为数学模型,我们就能以更加理性和系统的方式做出决策。37%规则1950年代,当时几位数学家开始研究这样一个问题:假设你要招聘一名秘书,总共有n个应聘者。你一个一个地面......
  • 探秘 Django 专业之道
    一、Django项目开发1.web框架底层1.1网络通信注意:局域网个人一般写程序,想要让别人访问:阿里云、腾讯云。去云平台租服务器(含公网IP)程序放在云服务器先以局域网为例我的电脑【服务端】importsocket#1.监听本机的IP和端口sock=socket.socket(socket.AF_INET......
  • 【简单介绍下线性回归模型】
    ......
  • 机器学习(四)——Lasso线性回归预测构建分类模型(matlab)
    Lasso线性回归(LeastAbsoluteShrinkageandSelectionOperator)是一种能够进行特征选择和正则化的线性回归方法。其重要的思想是L1正则化:其基本原理为在损失函数中加上模型权重系数的绝对值,要想让模型的拟合效果比较好,就要使损失函数尽可能的小,因此这样会使很多权重变为0或者权重......