Django學習收尾

?啟動項目命令

python manage.py runserver

文件上傳功能實現

title = "Form上傳"if request.method == "GET":form = UpForm()return render(request, 'upload_form.html', {"form": form, "title": title})form = UpForm(data=request.POST, files=request.FILES)if form.is_valid():print(form.cleaned_data)# 1.讀取圖片內容,寫入到文件夾中并獲取文件的路徑image_object = form.cleaned_data.get("img")# file_path = "app01/static/img{}".format(image_object.name)media_path = os.path.join("media", image_object.name)f = open(media_path, mode='wb')for chunk in image_object.chunks():f.write(chunk)f.close()# 2.將圖片文件路徑寫入到數據庫models.Boss.objects.create(name=form.cleaned_data['name'],age=form.cleaned_data['age'],img=media_path,)return HttpResponse("...")return render(request, 'upload_form.html', {"form": form, "title": title})

混合數據(ModalForm)

models.py

class City(models.Model):""" 城市 """name = models.CharField(verbose_name="名稱", max_length=32)count = models.IntegerField(verbose_name="人口")# 本質上數據庫也是CharField,自動保存數據。img = models.FileField(verbose_name="Logo", max_length=128)

upload.py

class UpModelForm(BootStrapForm):bootstrap_exclude_fields = ['img']class Meta:model = models.Cityfields = "__all__"def upload_modal_form(request):""" 上傳文件和數據 """title = "ModelForm上傳文件"if request.method == "GET":form = UpModelForm()return render(request, 'upload_form.html', {"form": form, "title": title})form = UpModelForm(data=request.POST, files=request.FILES)if form.is_valid():# 對于文件:自動保存;# 字段 + 上傳路徑寫入到數據庫form.save()return HttpResponse("成功")return render(request, 'upload_form.html', {"form": form, "title": title})

實現方式

1.自己手動去寫

file_object = request.FILES.get("exc")
...

2.Form組件(表單驗證) 具體文件操作還是手動自己做

request.POST
file_object = request.FILES.get("exc")

3.ModelForm(表單驗證 + 自動保存數據庫 + 自動保存文件)

-Media文件夾
-Models.py定義類文件要img = models.FileField(verbose_name="Logo", max_length=128, upload_to='city/')

echarts學習

怎么調用后臺數據,使用ajax請求

chart_list.html

{% extends 'layout.html' %}{% block content %}
<div class="container"><div class="panel panel-default"><div class="panel-heading">折線圖</div><div class="panel-body"><div id="m1" style="width: 600px;height:400px;"></div></div></div><div class="row"><div class="col-sm-7"><div class="panel panel-default"><div class="panel-heading">柱狀圖</div><div class="panel-body"><div id="m2" style="width: 100%;height:400px;"></div></div></div></div><div class="col-sm-5"><div class="panel panel-default"><div class="panel-heading">餅圖</div><div class="panel-body"><div id="m3" style="width: 600px;height:400px;"></div></div></div></div></div>
</div>
{% endblock %}
{% block js %}
<script src="https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js"></script>
<script type="text/javascript">$(function() {initBar();});function initBar() {// 初始化echarts實例var myChart = echarts.init(document.getElementById('m2'));// 初始的圖表配置項var option = {title: {text: 'ECharts 入門示例'},tooltip: {},legend: {data: []},xAxis: {data: []},yAxis: {},series: []};// 發起ajax請求獲取數據$.ajax({url: "/chart/bar/",type: "GET",dataType: "json",success: function(res) {// 如果請求成功,更新圖表數據if (res.status) {option.legend.data = res.data.legend; // 更新圖例數據option.xAxis.data = res.data.x_axis; // 更新X軸數據option.series = res.data.series_list; // 更新系列數據// 使用更新后的配置項顯示圖表myChart.setOption(option);}},error: function(xhr, status, error) {console.error('AJAX請求出錯:', status, error);// 在實際項目中可能需要處理錯誤情況}});}
</script>
{% endblock %}

chart.py

from django.shortcuts import render
from django.http import JsonResponsedef chart_list(request):""" 數據統計頁面 """return render(request, 'chart_list.html')def chart_bar(request):""" 構造柱狀圖的數據 """legend = ["張三", "李四"]series_list = [{"name": '張三',"type": 'bar',"data": [5, 20, 36, 10, 10, 20]},{"name": '李四',"type": 'bar',"data": [5, 20, 36, 10, 10, 20]},]x_axis = ['襯衫', '羊毛衫', '雪紡衫', '褲子', '高跟鞋', '襪子']result = {"status": True,"data": {'legend': legend,'series_list': series_list,'x_axis': x_axis,}}return JsonResponse(result)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42781.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42781.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42781.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java對象創建究竟是在棧上還是堆上??

在 Java 中&#xff0c;對象的創建通常情況下是在堆上。 基本數據類型&#xff08;如 byte、short、int、long、float、double、char&#xff09;在方法內聲明時&#xff0c;其值會存儲在棧上。除了基本數據類型之外的所有對象&#xff0c;都是由 Java 虛擬機&#xff08;JVM&…

python入門基礎知識·二

""" # Python介紹 # Python注釋 # 單行注釋&#xff1a; # # 多行注釋&#xff1a; r """""" # Python輸出和輸入 # print: 輸出 # input: 輸入 ①會讓程序暫停&#xff0c;②得到的是字符串內容 int(&…

Linux Mac 安裝Higress 平替 Spring Cloud Gateway

Linux Mac 安裝Higress 平替 Spring Cloud Gateway Higress是什么?傳統網關分類Higress定位下載安裝包執行安裝命令執行腳本 安裝成功打開管理界面使用方法configure.shreset.shstartup.shshutdown.shstatus.shlogs.sh Higress官網 Higress是什么? Higress是基于阿里內部的…

Vue指令詳解與實操運用 - 編程魔法

在Vue.js的世界里&#xff0c;指令就像是一位魔法師&#xff0c;它們能夠賦予HTML元素以生命&#xff0c;讓網頁與用戶互動起來。今天&#xff0c;我們就來揭開這些指令的神秘面紗&#xff0c;看看它們是如何在我們的日常開發中發揮作用的。 1. v-text 和 v-html - 文字與內容的…

思考:Java內存模型和硬件內存模型

前言 前一陣在看volatile的原理&#xff0c;看到內存屏障和緩存一致性&#xff0c;發現再往底層挖就挖到了硬件和Java內存模型。這一塊是自己似懂非懂的知識區&#xff0c;我一般稱之為知識混沌區。因此整理這一篇文章。 什么是內存模型&#xff08;Memory Model&#xff09;…

CentOS6用文件配置IP模板

CentOS6用文件配置IP模板 到 CentOS6.9 , 默認還不能用 systemctl , 能用 service chkconfig sshd on 對應 systemctl enable sshd 啟用,開機啟動該服務 ### chkconfig sshd on 對應 systemctl enable sshd 啟用,開機啟動該服務 sudo chkconfig sshd onservice sshd start …

未羽研發測試管理平臺

突然有一些覺悟&#xff0c;程序猿不能只會吭哧吭哧的低頭做事&#xff0c;應該學會怎么去展示自己&#xff0c;怎么去宣傳自己&#xff0c;怎么把自己想做的事表述清楚。 于是&#xff0c;這兩天一直在整理自己的作品&#xff0c;也為接下來的找工作多做點準備。接下來…

LT7911UX 國產原裝 一拖三 edp 轉LVDS 可旋轉 可縮放

2.一般說明 該LT7911UX是一種高性能Type-C/DP1.4a到MIPI或LVDS芯片的VR/顯示應用。HDCP RX作為HDCP轉發器的上游&#xff0c;可以與其他芯片的HDCP TX配合實現轉發器功能。 對于DP1.4a輸入&#xff0c;LT7911UX可配置為1/2/4通道。自適應均衡使其適用于長電纜應用&#xff0c;最…

Junior.Crypt.2024 CTF Web方向 題解WirteUp 全

Buy a cat 題目描述&#xff1a;Buy a cat 開題 第一思路是抓包改包 Very Secure App 題目描述&#xff1a;All secrets become clear 開題 亂輸一個密碼就登陸成功了&#xff08;不是弱口令&#xff09; 但是回顯Your role is: user 但是有jwt&#xff01;&#xff01;&a…

深入理解基本數據結構:鏈表詳解

引言 在計算機科學中&#xff0c;數據結構是存儲、組織和管理數據的方式。鏈表是一種重要的線性數據結構&#xff0c;廣泛應用于各種編程場景。在這篇博客中&#xff0c;我們將詳細探討鏈表的定義、特點、操作及其在不同編程語言中的實現。 什么是鏈表&#xff1f; 鏈表是一種…

Mobile ALOHA前傳之VINN, Diffusion Policy和ACT對比

VINNDiffusion PolicyACT核心思想1.從離線數據中自監督學習獲得一個視覺編碼器&#xff1b;2.基于視覺編碼器&#xff0c;從采集的示例操作數據中檢索與當前觀測圖像最相似的N張圖像以及對應的動作&#xff1b;3.基于圖像編碼器的距離對各個動作進行加權平均&#xff0c;獲得最…

Open3D loss函數優化的ICP配準算法(精配準)

目錄 一、概述 1.1ICP的基本步驟 1.2損失函數的設計 二、代碼實現 2.1關鍵函數 2.2完整代碼 三、實現效果 3.1原始點云 3.2配準后點云 3.3計算數據 一、概述 ICP(Iterative Closest Point)配準算法是一種用于對齊兩個點云的經典算法。其目標是通過迭代優化…

Istio實戰教程:Service Mesh部署與流量管理

引言 Istio是一個開源的服務網格&#xff0c;它提供了一種統一的方法來連接、保護、控制和觀察服務。本教程將指導你從零開始部署Istio&#xff0c;并展示如何使用Istio進行基本的流量管理。 環境準備 Kubernetes集群&#xff1a;Istio運行在Kubernetes之上&#xff0c;確保…

W25Q64 Flash存儲器與STM32:硬件與軟件的完美結合案例

摘要 在嵌入式系統中&#xff0c;數據存儲是關鍵組成部分之一。W25Q64 Flash存儲器因其高容量、低功耗和高可靠性&#xff0c;成為STM32微控制器項目中優選的存儲解決方案。本文將展示W25Q64與STM32微控制器集成的案例&#xff0c;包括硬件設計、SPI通信協議實現和軟件編程策略…

記錄在Windows上安裝Docker

在Windows上安裝Docker時&#xff0c;可以選擇使用不同的后端。 其中兩個常見的選擇是&#xff1a;WSL 2&#xff08;Windows Subsystem for Linux 2&#xff09;和 Hyper-V 后端。此外&#xff0c;還可以選擇使用Windows容器。 三者的區別了解即可&#xff0c;推薦用WSL 2&…

我們公司落地大模型的路徑、方法和坑

我們公司落地大模型的路徑、方法和坑 李木子 AI大模型實驗室 2024年07月02日 18:35 北京 最近一年&#xff0c;LLM&#xff08;大型語言模型&#xff09;已經成熟到可以投入實際應用中了。預計到 2025 年&#xff0c;AI 領域的投資會飆升到 2000 億美元。現在&#xff0c;不只…

Thinking--在應用中添加動態水印,且不可刪除

Thinking系列&#xff0c;旨在利用10分鐘的時間傳達一種可落地的編程思想。 水印是一種用于保護版權和識別內容的技術&#xff0c;通常用于圖像、視頻或文檔中。它可以是文本、圖像或兩者的組合&#xff0c;通常半透明或以某種方式嵌入到內容中&#xff0c;使其不易被移除或篡改…

【Linux】多線程_2

文章目錄 九、多線程2. 線程的控制 未完待續 九、多線程 2. 線程的控制 主線程退出 等同于 進程退出 等同于 所有線程都退出。為了避免主線程退出&#xff0c;但是新線程并沒有執行完自己的任務的問題&#xff0c;主線程同樣要跟進程一樣等待新線程返回。 pthread_join 函數…

【代碼隨想錄_Day28】62. 不同路徑 63. 不同路徑 II

Day28 OK&#xff0c;今日份的打卡&#xff01;第二十八天 以下是今日份的總結不同路徑不同路徑 II 以下是今日份的總結 62 不同路徑 63 不同路徑 II 今天的題目難度不低&#xff0c;盡量還是寫一些簡潔代碼 ^?_?^ 不同路徑 思路&#xff1a; 1.確定dp數組&#xff08;dp…

算法學習筆記(8.2)-動態規劃入門進階

目錄 問題判斷: 問題求解步驟&#xff1a; 圖例&#xff1a; 解析&#xff1a; 方法一&#xff1a;暴力搜索 實現代碼如下所示&#xff1a; 解析&#xff1a; 方法二&#xff1a;記憶化搜索 代碼示例&#xff1a; 解析&#xff1a; 方法三&#xff1a;動態規劃 空間…