教你用Django将前端的数据存入Mysql数据库
作者:Spring� 胡 发布时间:2024-01-19 20:09:48
标签:django,数据,mysql
目录
1.在app下的models.py中创建新的模板
2.数据迁移(用pycharm自带的Terminal工具即可)
3.在app下的views.py中创建新的视图
4.前端
5.效果
1.在app下的models.py中创建新的模板
具体代码如下:
class Apply(models.Model):
clas = models.CharField(max_length=32, verbose_name="班级")
name = models.CharField(max_length=32, verbose_name="姓名")
number = models.CharField(max_length=15, verbose_name="学号")
email = models.CharField(max_length=32, verbose_name="邮箱")
phone = models.CharField(max_length=11, verbose_name="手机号")
zhiyuan1 = models.EmailField(max_length=32, verbose_name="志愿一")
zhiyuan2 = models.EmailField(max_length=32, verbose_name="志愿二")
Apply类下的clas,name这些通过数据迁移会变成mysql数据库中的列表名
2.数据迁移(用pycharm自带的Terminal工具即可)
python manage.py makemigrations finalapp
python manage.py migrate finalapp
finalapp是我app的名字,大家数据迁移的时候记得换成自己app的名字
下面是我数据迁移之后的mysql数据库,可以看到finalapp_apply表已经创建成功,双击点开就可以查看表,新创建的表是什么数据都没有的,图中的是我的前端通过form表单提交到数据库的
3.在app下的views.py中创建新的视图
具体代码如下:
def apply(request):
if request.method == "POST": # 判断请求为POST请求则是提交表单
apply = Apply() # 创建一个apply实例
clas = request.POST.get("clas") # 获取提交表单中的clas值,赋值给clas
name = request.POST.get("name") # 获取提交表单中的name值,赋值给变量name
number = request.POST.get("number")
email = request.POST.get("email")
phone = request.POST.get("phone")
zhiyuan1 = request.POST.get("zhiyuan1")
zhiyuan2 = request.POST.get("zhiyuan2")
apply.clas = clas #给实例赋值
apply.name = name
apply.number = number
apply.email = email
apply.phone = phone
apply.zhiyuan1 = zhiyuan1
apply.zhiyuan2 = zhiyuan2
apply.save() # 保存实例,把数据存到数据库
return render(request, 'applysuccessful.html') #数据保存之后,从apply网页跳转到成功的页面
else:
return render(request, 'apply.html') #没有数据的时候,跳转到apply网页
4.前端
具体代码如下:
<form action="/apply/" method="post" style="padding-top: 30px">
{% csrf_token %}
<p>
<label>班 级:<input type="text" name="clas"></label>
</p>
<p>
<label>姓 名:<input type="text" name="name"></label>
</p>
<p>
<label>学 号:<input type="text" name="number"></label>
</p>
<p>
<label>邮 箱:<input type="text" name="email"></label>
</p>
<p>
<label>手机号:<input type="text" name="phone"></label>
</p>
<p>
<label>志愿一:<input type="text" name="zhiyuan1"></label>
</p>
<p>
<label>志愿二:<input type="text" name="zhiyuan2"></label>
</p>
<input type="submit" value="提交">
</form>
form表单必须写 action 属性,它规定当提交表单时,向何处发送表单数据。
{%csrf_token%}:在Django中我们需要在templates的form中加入{%csrf_token%}这串内容,它的作用是当我们get表单页面时,服务器返回页面的同时也会向前端返回一串随机字符,post提交时服务器会验证这串字符来确保用户是在服务端返回的表单页面中提交的数据,防止有人通过例如jquery脚本向某个url不断提交数据,是一种数据提交的验证机制。
5.效果
可以看到前端提交的数据已经存入到数据库中
希望这篇文章可以帮助到你!!!
来源:https://blog.csdn.net/weixin_47498728/article/details/121130837


猜你喜欢
- 1、生成配置文件''' 生成配置文件'''import configparse
- 1、启动SQL Server Management Studio,以Windows身份验证方式登录。2、在对象资源管理器窗口中,右键单击服务
- 数据可视化是一种将庞杂抽象的数据转化为直观易懂的图形的数据呈现技术,它能帮助我们快速把握数据的分布和规律,更加轻松地理解和探索信息。在当今这
- 我的路由:const routerMap = [ { path: '/',  
- 前言最近在写nuxt项目时候每次新建页面都要去新建然后引入各种需要的依赖很是麻烦,所以想写一个脚本自动生成文件 省去手动新建现写下实现方法
- 前段时间看了一期《最强大脑》,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合。真实
- 一、前言在Python开发的过程中,为了实现某项功能,经常需要对某些字符串进行特殊的处理,如拼接字符串、截取字符串、格式化字符串等。下面将对
- 假设现有需求如下:需要一个页面分页展示信息,在该页面添加搜索框以提供检索功能。那么,我们知道,展示信息和检索功能是在同一个页面,也就是共用一
- 修改密码://选择数据库use mysql;//修改密码update user set password=password('新密码
- 一、http请求的顺序处理方式在高并发场景下,为了降低系统压力,都会使用一种让请求排队处理的机制。本文就介绍在Go中是如何实现的。首先,我们
- 每次写完的东西就忘了,下次用时还要重查资料重新写,这是今天写的一段测试代码,保留下来,记录给自已,同时分享给大家。目标:把下边的这个上传文件
- Pandas库十分强大,但是对于切片操作iloc, loc和ix,很多人对此十分迷惑,因此本篇博客利用例子来说明这3者之一的区别和联系,尤其
- <?php/** * HOST: www.icbase.com *///set_time_limit(0);//
- 今天,在项目中遇到一个问题,两个js页面要共享一个就js对象。js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了。而LZ又不想用c
- 介绍:SQL Server 2008变更数据捕获SQL Server 2008的CDC函数读取激活了CDC的每个表所关联的事务日志来记录系统
- 本文实例分析了js命名空间写法。分享给大家供大家参考,具体如下:很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还
- 本文较为详细的分析了python内存管理机制。分享给大家供大家参考。具体分析如下:内存管理,对于Python这样的动态语言,是至关重要的一部
- 前言: 时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇
- 本文实例讲述了PHP实现的随机IP函数。分享给大家供大家参考,具体如下:function get_rand_ip(){ $arr
- pandas可以将读取到的表格型数据(文件不一定要是表格)转成DataFrame类型的数据结构,然后我们可以通过操作DataFrame进行数