教你用Django将前端的数据存入Mysql数据库
作者:Spring� 胡 时间:2024-01-19 20:09:48
目录
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
标签:django,数据,mysql
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Ajax发明人:Ajax并不适合所有网站
2008-01-30 12:20:00
为PHP模块添加SQL SERVER2012数据库的步骤详解
2024-05-13 09:53:57
![](https://img.aspxhome.com/file/2023/7/126227_0s.jpg)
使用python实现链表操作
2021-07-29 23:30:38
![](https://img.aspxhome.com/file/2023/4/80604_0s.png)
asp如何编写一个加法器?
2009-11-08 18:58:00
Python爬虫框架之Scrapy中Spider的用法
2023-10-04 10:38:21
解决python ogr shp字段写入中文乱码的问题
2023-07-05 00:40:17
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2021-08-28 15:42:10
![](https://img.aspxhome.com/file/2023/3/85043_0s.png)
Python的Tornado Web框架深入解析
2021-11-28 03:14:51
css实现图片倒影效果
2007-11-05 18:29:00
![](https://img.aspxhome.com/file/UploadPic/200711/5/2007115184648157s.jpg)
Python算法输出1-9数组形成的结果为100的所有运算式
2022-05-02 22:45:48
如何解决python多种版本冲突问题
2023-12-28 06:41:17
![](https://img.aspxhome.com/file/2023/7/82557_0s.jpg)
详解python-图像处理(映射变换)
2023-12-23 06:43:35
![](https://img.aspxhome.com/file/2023/9/93709_0s.png)
深入浅析python定时杀进程
2021-10-23 17:14:15
Python3中urlopen()的用法解读
2023-11-22 20:26:19
Python实现照片卡通化
2021-03-29 18:45:40
![](https://img.aspxhome.com/file/2023/2/86552_0s.jpg)
使用GitHub和Python实现持续部署的方法
2022-07-16 22:54:35
![](https://img.aspxhome.com/file/2023/2/93542_0s.png)
Python中关于property使用的小技巧
2021-01-25 04:35:44
巧用Dreamweaver制作复杂图像
2010-09-02 12:34:00
![](https://img.aspxhome.com/file/UploadPic/20072/200723113139567s.jpg)
使用PyV8在Python爬虫中执行js代码
2022-05-09 14:33:36
WorkBench管理操作MySQL
2010-10-14 14:21:00
![](https://img.aspxhome.com/file/UploadPic/201010/14/20101014143458336s.png)