django基础之数据库操作方法(详解),深度解析跳槽从开始到结束完整流程

本文介绍了如何使用Django框架创建数据库模型、执行迁移、编写视图处理数据增删改查,以及配置URL和模板展示。还涉及了静态文件管理和表单提交等内容。
摘要由CSDN通过智能技术生成

1

2

3

4

5

6

7

from django.db import models

  

# Create your models here.

class UserInfo(models.Model):

  username = models.CharField(max_length=32)

  password = models.CharField(max_length=32)

  age = models.IntegerField()

命令行执行:

?

1

2

E:\WWWROOT\python\mysite>python manage.py makemigrations

E:\WWWROOT\python\mysite>python manage.py migrate

完成后会在数据库创建一张数据表:

从上图中可以看出,Django默认会以APP名为数据表前缀,以类名为数据表名!

创建的字段如下图:

从上图可以看出,Django会默认加上一个id字段,该字段为主键且自增长

在blog_UserInfo表中添加数据:

Django是在views.py文件中,通过导入models.py文件来创建数据的:

?

1

2

3

4

5

6

7

8

from django.shortcuts import render

  

# Create your views here.

from blog import models    #导入blog模块

from django.shortcuts import HttpResponse

def db_handle(request):

  models.UserInfo.objects.create(username='andy',password='123456',age=33)

  return HttpResponse('OK')

下面我们配置路由,以便让浏览器能够访问到views.py文件:

?

1

2

3

4

5

6

7

8

from django.conf.urls import url

from django.contrib import admin

  

from blog import views

urlpatterns = [

  url(r'^admin/', admin.site.urls),

  url(r'^db_handle', views.db_handle),

]

下面我们来访问http://127.0.0.1/db_handle

查看数据库是否创建成功:

上面就是创建表数据,也可以通过字典的格式来创建表数据:

?

1

2

3

4

5

def db_handle(request):

  # models.UserInfo.objects.create(username='andy',password='123456',age=33)

  dic = {"username":"bruce","password":"123456","age":23}

  models.UserInfo.objects.create(**dic)

  return HttpResponse('OK')

通过上面的方法,我们多创建几条数据,完成后如下图所示:

删除表数据:

views.py文件如下:

?

1

2

3

4

5

6

7

8

9

10

11

from django.shortcuts import render

  

# Create your views here.

from blog import models

from django.shortcuts import HttpResponse

def db_handle(request):

  # models.UserInfo.objects.create(username='andy',password='123456',age=33)

  # dic = {"username":"bruce","password":"123456","age":23}

  # models.UserInfo.objects.create(**dic)

  models.UserInfo.objects.filter(id=2).delete()

  return HttpResponse('OK')

操作方法同上,在浏览器中执行一遍,数据中的id=2的数据即被删除:

修改表数据:

?

1

2

3

4

5

6

7

8

from django.shortcuts import render

 

# Create your views here.

from blog import models

from django.shortcuts import HttpResponse

def db_handle(request):

  models.UserInfo.objects.filter(id=1).update(age=18) #找到id=1的数据,将age改为18

  return HttpResponse('OK')

数据的查询:

为了让查询出来的数据更加直观地显示出来,这里我们将使用Django的模板功能,让查询出来的数据在WEB浏览器中展示出来

在templates目录下新建一个t1.html的文件,内容如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<!DOCTYPE html>

<html>

<head lang="en">

  <meta charset="UTF-8">

  <title>Django操作数据库</title>

</head>

<body>

  <table border="1">

    <tr>

      <th>用户名</th>

      <th>密码</th>

      <th>年龄</th>

    </tr>

    {% for item in li %}

    <tr>

      <td>{{ item.username }}</td>

      <td>{{ item.password }}</td>

      <td>{{ item.age }}</td>

    </tr>

    {% endfor %}

  </table>

</body>

</html>

views.py文件查询数据,并指定调用的模板文件,内容如下:

?

1

2

3

4

5

6

7

8

from django.shortcuts import render

 

# Create your views here.

from blog import models

from django.shortcuts import HttpResponse

def db_handle(request):

  user_list_obj = models.UserInfo.objects.all()

  return render(request,'t1.html',{'li':user_list_obj})

**注意:**由于这里是在工程下面的templates目录下建立的模板,而不是在blog应用中创建的模板,上面views.py文件中调用的t1.html模板,运行时会出现找不到t1.html模板的错误,为了能找到mysite/templates下的模板文件,我们还需要在settings.py文件配置模板的路径:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

TEMPLATES = [

  {

    'BACKEND': 'django.template.backends.django.DjangoTemplates',

    'DIRS': [os.path.join(BASE_DIR,'templates')], #配置模板路径

    'APP_DIRS': True,

    'OPTIONS': {

      'context_processors': [

        'django.template.context_processors.debug',

        'django.template.context_processors.request',

        'django.contrib.auth.context_processors.auth',

        'django.contrib.messages.context_processors.messages',

      ],

    },

  },

]

下面就可以在浏览器中查看:

引入JS,CSS等静态文件:

在mysite目录下新建一个static目录,将JS,CSS文件都放在此目录下!并在settings.py文件中指定static目录:

?

1

2

3

4

STATIC_URL = '/static/'

STATICFILES_DIRS = (

  os.path.join(BASE_DIR,'static'),

)

表单提交数据:

在Django中要使用post方式提交表单,需要在settings.py配置文件中将下面一行的内容给注释掉:

?

1

# 'django.middleware.csrf.CsrfViewMiddleware',

提交表单(这里仍然使用了t1.html):

?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值