电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

瀏覽:8日期:2022-07-27 18:03:49

前言

本篇使用Python Web框架Django連接和操作MySQL數據庫學生信息管理系統(SMS),主要包含對學生信息增刪改查功能,旨在快速入門Python Web,少走彎路。效果演示在項目實戰最后一節,文章結尾有整個項目的源碼地址。

開發環境

開發工具:Pycharm 2020.1 開發語言:Python 3.8.0 Web框架:Django 3.0.6 數據庫:MySQL5.7 操作系統:Windows 10

項目實戰

1. 創建項目

File->New Project->Django

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

稍等片刻,項目的目錄結構如下圖

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

項目創建后確認是否已安裝Django和mysqlclient解釋器,如何確認?file->Settings

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

如果沒有請在Terminal終端輸入以下命令完成安裝

pip install djangopip install mysqlclient

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

如果在執行pip install 報錯Read time out請設置延長下超時時間,默認15s,網絡不好情況下很易超時

pip --default-timeout=180 install -U djangopip --default-timeout=180 install -U mysqlclient

參數-U是--upgrade簡寫,把安裝的包升級到最新版本

2. 創建應用

打開Pycharm的Terminal終端,輸入以下命令創建sims應用

python manage.py startapp sims

應用創建后要在項目的settings.py文件里的INSTALLED_APPS下面添加smis完成應用注冊

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

3.配置MySQL數據庫

在本地MySQL創建sms數據庫,修改項目的settings連接信息由默認的sqlite修改為MySQL

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

DATABASES = { ’default’: { ’ENGINE’: ’django.db.backends.mysql’, ’NAME’: ’sms’, ’USER’: ’root’, ’PASSWORD’: ’123456’, ’HOST’: ’127.0.0.1’, ’PORT’: 3306 }}

測試連接,依次點擊Pycharm右上角的Database->+->Data Source->MySQL

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

下載連接驅動和配置數據庫連接信息

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

點擊Test Connection測試連接,連接通過點擊OK出現如下的結構信息表示連接本地MySQL成功

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

4.數據模型創建(M)

在應用sims下models.py添加Student模型

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

class Student(models.Model): student_no = models.CharField(max_length=32, unique=True) student_name = models.CharField(max_length=32)

5.數據模型遷移

Terminal終端輸入以下兩條命令,其作用第一條生成文件記錄模型的變化;第二條是將模型變化同步至數據庫,我們可以在數據庫生成對應的表結構。

python manage.py makemigrations simspython manage.py migrate sims

生成數據表結構如下所示

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

6.路由配置

本質可以理解請求路徑url和處理方法的映射配置,首先在項目sms的urls.py文件中添加sims的路由配置

from django.contrib import adminfrom django.urls import pathfrom django.conf.urls import url, includeurlpatterns = [ path(’admin/’, admin.site.urls), url(r’^sims/’, include(’sims.urls’))]

然后在sims添加一個名為urls.py的文件,添加路由配置如下

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

# coding=utf-8from django.conf.urls import urlfrom . import viewsurlpatterns = [ url(r’^$’, views.index), url(r’^add/$’, views.add), url(r’^edit/$’, views.edit), url(r’^delete/$’, views.delete)]

7.處理函數添加(V)

在應用sims的視圖層文件views.py添加對應學生信息增刪改查的處理函數,這里我使用的原生SQL,便于深入理解其執行過程。后面有時間我會在github上添加Django框架提供的操作數據庫方式。

import MySQLdbfrom django.shortcuts import render, redirect# Create your views here.# 學生信息列表處理函數def index(request): conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='sms', charset=’utf8’) with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute('SELECT id,student_no,student_name FROM sims_student') students = cursor.fetchall() return render(request, ’student/index.html’, {’students’: students})# 學生信息新增處理函數def add(request): if request.method == ’GET’: return render(request, ’student/add.html’) else: student_no = request.POST.get(’student_no’, ’’) student_name = request.POST.get(’student_name’, ’’) conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='sms', charset=’utf8’) with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute('INSERT INTO sims_student (student_no,student_name) ' 'values (%s,%s)', [student_no, student_name]) conn.commit() return redirect(’../’)# 學生信息修改處理函數def edit(request): if request.method == ’GET’: id = request.GET.get('id') conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='sms', charset=’utf8’) with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute('SELECT id,student_no,student_name FROM sims_student where id =%s', [id]) student = cursor.fetchone() return render(request, ’student/edit.html’, {’student’: student}) else: id = request.POST.get('id') student_no = request.POST.get(’student_no’, ’’) student_name = request.POST.get(’student_name’, ’’) conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='sms', charset=’utf8’) with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute('UPDATE sims_student set student_no=%s,student_name=%s where id =%s', [student_no, student_name, id]) conn.commit() return redirect(’../’)# 學生信息刪除處理函數def delete(request): id = request.GET.get('id') conn = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='sms', charset=’utf8’) with conn.cursor(cursorclass=MySQLdb.cursors.DictCursor) as cursor: cursor.execute('DELETE FROM sims_student WHERE id =%s', [id]) conn.commit() return redirect(’../’)

8.模板頁面創建(T)

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

學生信息列表頁

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>學生列表</title></head><body><table border='1px' style='border-collapse: collapse;'> <a href='http://www.hdgsjgj.cn/sims/add'>添加學生</a> <tr> <th>編號</th> <th>姓名</th> <th>學號</th> <th>操作</th> </tr> {% for student in students %} <tr> <td align='center'>{{ forloop.counter }} </td> <td align='center'>{{ student.student_name }} </td> <td align='center'>{{ student.student_no }} </td> <td align='center'> <a href='http://www.hdgsjgj.cn/sims/edit/?id={{ student.id }}'> 編輯 </a> <a href='http://www.hdgsjgj.cn/sims/delete/?id={{ student.id }}'> 刪除 </a> </td> </tr> {% endfor %}</table></body></html>

學生信息新增頁

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>學生添加</title> <style> form { margin: 20px auto; width: 500px; border: 1px solid #ccc; padding: 20px } </style></head><body><form method='post' action='../add/'> {% csrf_token %} <table> <tr> <th>姓名</th> <td><input name='student_name'></td> </tr> <tr> <th>學號</th> <td><input name='student_no'/></td> </tr> <tr> <td colspan='2'> <input type='submit'/> </td> </tr> </table></form></body></html>

學生信息編輯頁

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>學生編輯</title> <style> form { margin: 20px auto; width: 500px; border: 1px solid #ccc; padding: 20px } </style></head><body><form method='post' action='../edit/'> {% csrf_token %} <input type='hidden' name='id' value='{{ student.id }}'/> <table> <tr> <th>姓名</th> <td><input name='student_name' value='{{ student.student_name }}'></td> </tr> <tr> <th>學號</th> <td><input name='student_no' value='{{ student.student_no }}'/></td> </tr> <tr> <td colspan='2'> <input type='submit'/> </td> </tr> </table></form></body></html>

9.啟動web服務測試

Terminal終端輸入以下命令啟動web服務

python manage.py runserver

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

服務啟動后,打開瀏覽器輸入http://127.0.0.1:8000/sims/即可進入學生信息管理列表頁

10.功能演示

最后最重要的事情,看效果。我這里簡單演示下,話不多說,看動態圖

Python+Django+MySQL實現基于Web版的增刪改查的示例代碼

結語

至此,基于Python+Django+MySQL環境搭建一個擁有增刪改查功能的Python Web就完成了。希望能夠真正幫到大家快速入門Python Web開發。如果在搭建過程中您有遇到什么問題,歡迎在下方留言,看到我會立即回復的!可以的話給個關注哦,謝謝您!

附錄

最后附上項目整個源碼的github倉庫地址 https://github.com/hxrui/python-diango-web.git,歡迎star交流學習。

到此這篇關于Python+Django+MySQL實現基于Web版的增刪改查的文章就介紹到這了,更多相關Python+Django+MySQL實現基于Web版的增刪改查內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | PC阳光板-PC耐力板-阳光板雨棚-耐力板雨棚,厂家定制[优尼科板材] | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 锡膏喷印机-全自动涂覆机厂家-全自动点胶机-视觉点胶机-深圳市博明智控科技有限公司 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 五轴加工中心_数控加工中心_铝型材加工中心-罗威斯 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 聚丙烯酰胺_厂家_价格-河南唐达净水材料有限公司 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 快速卷帘门_硬质快速卷帘门-西朗门业 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 |