5、Django-模型-models
概念:
基本模板:模板 其实就是我们使用的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/
本文作者:little小新
本文链接:https://www.cnblogs.com/littlecc/p/18111793
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步