1 | title: django模型层 |
django模型层:
1.模型:
1 | 理解:一个模型代表一张表,每一个属性代表一个字段,模型和数据库之间处于映射,django会提供一个可供操作数据库的API,直接在模型中进行操作 |
2.操作步骤
1 | #首先创建一个项目 |
一些增删改查的基本操作(都在view.py中)
1 | #添加操作 |
错误:
1.忘记导入模块,导致某个函数未定义
2.拼写错误会出奇怪的问题
ps:
django官方给了很多查询方法,可以看看,甚至可以使用sql语句查询。
model模型的实战
csrf 需要令牌验证(直接post不能通过)
目标要求:实现在django模型中进行操作直接对数据库中的数据进行操作(基本操作增删改查)
1.创建项目,创建应用,创建放置页面的文件
1 | django-admin startproject mydemo |
2.连接数据库(此处使用mysql)配置文件在mydemo.setting.py
1 | DATABASES = { |
3.setting.py中的其他配置
1 | #模板文件配置 |
os.path.join(BASE_DIR, 'templates')
的作用是将 BASE_DIR
和 'templates'
这两个路径组合在一起,形成一个完整的文件路径,该路径指向项目根目录下的 “templates” 文件夹。这通常用于在项目中定位或访问模板文件,因为模板文件通常存储在项目的 “templates” 子目录中。这种方法可以确保代码在不同操作系统上都能正常工作,因为它会根据操作系统自动调整路径分隔符。
1 | #开启远程访问,不限制ip |
4.配置myapp中的models.py
1 | from django.db import models |
models.py中Users类代表生成一张叫做myapp_users的表,其中字段有name,age,phone,addtime
5.配置models.py 之后生成迁移文件
1 | #创建迁移文件 |
myapp列表会生成一个migrations的文件
其中此文件代表了数据库中的数据映射,id是自动生成的主键
6.这时候数据库也会产生相应的字段
前面表的产生都可以在setting配置文件中自行选择
7.定义视图文件view.
HttpResponse
是一个通用的概念,用于构建和返回 HTTP 响应。
1 | from django.shortcuts import render |
8.配置url路由,由于未来开发使用mydemo中的路由会显的冗杂,于是在这里建立一个在myapp中的子路由
1 | from django.urls import path |
9.上面所包含的html文件全部在template/myapp/user文件目录下
index.html (访问路径:/users)
1 | <!DOCTYPE html> |
add.html (访问路径:users/add)
1 | <!DOCTYPE html> |
info.html (这个是一个信息提示页面,在进行操作结束后会提醒成功or失败)
1 | <!DOCTYPE html> |
edit.html(users/edit/int:uid)
1 | <!DOCTYPE html> |
在以上页面中都有操作对应需要跳转的页面(如在index页面中是浏览,所以会有编辑,和删除的字样,此刻可以有链接跳转到相应的edit.html 和 一个删除JavaScript的一个弹窗
以上文件中都有相同的导航部分,于是可以封装到menu.html,再使用include进行调用
menu.html(导航页可以浏览和添加信息)
1 | <h2>用户信息管理</h2> |
使用include (这个是django特有的)
1 | {% include 'menu.html' %} |
10.代码对应页面效果
1 | return HttpResponse("首页 <br/> <a href='/users'>用户信息管理</a>")#页面显示 |
点击用户信息管理
添加信息
编辑信息
删除效果
信息返回提醒
以上就是整个model的实践。