久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 怎么樣用django將后臺(tái)數(shù)據(jù)庫(kù)表里面的內(nèi)容以Excel表格的形式顯示到網(wǎng)頁(yè)中?

        怎么樣用django將后臺(tái)數(shù)據(jù)庫(kù)表里面的內(nèi)容以Excel表格的形式顯示到網(wǎng)頁(yè)中?

        來(lái)源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-10-13 13:07:11 1697173631

        一、用django將后臺(tái)數(shù)據(jù)庫(kù)表里面的內(nèi)容以Excel表格的形式顯示到網(wǎng)頁(yè)中

        管理后臺(tái)由網(wǎng)站的管理員負(fù)責(zé)查看、添加、修改、刪除數(shù)據(jù),為此,Django能夠根據(jù)定義的模型類自動(dòng)地生成管理模塊 使用Django的管理模塊,用django將后臺(tái)數(shù)據(jù)庫(kù)表里面的內(nèi)容以Excel表格的形式顯示到網(wǎng)頁(yè)中。

        基本實(shí)現(xiàn)導(dǎo)出功能

        在admin.py定義導(dǎo)出函數(shù)

        # 實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能

        exportable_fields = (‘username’, ‘city’, ‘phone’, ‘bachelor_school’, ‘master_school’, ‘degree’, ‘first_result’, ‘first_interviewer_user’,

        ???????????????????? ‘second_result’, ‘second_interviewer_user’, ‘hr_result’, ‘hr_score’, ‘hr_remark’, ‘hr_interviewer_user’)

        # request是用戶發(fā)起的請(qǐng)求,queryset是用戶在界面上選擇的結(jié)果列表里面的數(shù)據(jù)集合

        def export_model_as_csv(modeladmin,request,queryset): # request是用戶發(fā)起的請(qǐng)求,queryset用戶在列表選擇的結(jié)果列表里的數(shù)據(jù)集合

        ??? response = HttpResponse(content_type=’text/csv’)

        ??? field_list = exportable_fields? # 導(dǎo)出的字段

        ? ??# 指定導(dǎo)出文件的格式

        ??? response[‘Content-Disposition’] = ‘a(chǎn)ttachment; filename=%s-list-%s.csv’ %(

        ??????? ‘name’,

        ??????? datetime.now().strftime(‘%Y-%m-%d-%H-%M-%S’)

        ??? )

        ??? #寫入表頭

        ??? writer = csv.writer(response)

        ??? writer.writerow(

        ??????? # 把每一個(gè)字段對(duì)應(yīng)的頁(yè)面顯示的中文名,作為我們導(dǎo)出文件里面的表頭,

        ??????? [queryset.model._meta.get_field(f).verbose_name.title() for f in field_list]

        ??? )

        ??? # 把數(shù)據(jù)的每一行寫進(jìn)去

        ??? for obj in queryset:

        ??????? #單行記錄(各個(gè)字段的值)寫入到csv文件

        ??????? csv_line_values = []

        ??????? for field in field_list:

        ??????????? field_object = queryset.model._meta.get_field(field)

        ??????????? field_value = field_object.value_from_object(obj)

        ??????????? csv_line_values.append(field_value)

        ??????? writer.writerow(csv_line_values)

        ??????? logging.info(‘%s exported %s candidate records’ % (request.user, len(queryset)))

        ??? return response

        # 定義這個(gè)函數(shù)的屬性

        export_model_as_csv.short_description = u’導(dǎo)出為CSV文件’

        # 導(dǎo)出按鈕的權(quán)限,如果用戶有export的權(quán)限,則運(yùn)行調(diào)用allowed_permissions這個(gè)方法,則菜單會(huì)展示出來(lái)

        export_model_as_csv.allowed_permissions = (‘export’, )

        class CandidateAdmin(admin.ModelAdmin):

        ??? # 定義actions,將函數(shù)注冊(cè)到actions里面

        ??? actions = [export_model_as_csv, ]

        ??? pass

        用pandas實(shí)現(xiàn)導(dǎo)出功能

        def export_model_as_csv(modeladmin,request,queryset): # request是用戶發(fā)起的請(qǐng)求,queryset用戶在列表選擇的結(jié)果列表里的數(shù)據(jù)集合

        ??? response = HttpResponse(content_type=’text/csv’)

        ??? response[‘Content-Disposition’] = ‘a(chǎn)ttachment; filename=%s-list-%s.csv’ % (

        ??????? ‘name’,

        ??????? datetime.now().strftime(‘%Y-%m-%d-%H-%M-%S’)

        ??? )

        ??? data = pd.DataFrame(list(queryset.values()))

        ??? id_list = list(data[‘a(chǎn)pp_username’].unique())

        ??? name_list = []

        ??? for i in id_list:

        ??????? name = str(data[data[‘a(chǎn)pp_username’] == i][‘name’].unique()[0])

        ??????? name_list.append(name)

        ??? new_data = pd.DataFrame(columns=pd.MultiIndex.from_product([data[‘sign_date’].unique(), [‘早’, ‘中’, ‘晚’]]), index=pd.MultiIndex.from_arrays([id_list, name_list],names=[‘學(xué)號(hào)’,’姓名’]))

        ??? for i in range(len(data)):

        ??????? obj = data.iloc[i]

        ??????? new_data.loc[obj[‘a(chǎn)pp_username’],obj[‘name’]][obj[‘sign_date’].strftime(‘%Y-%m-%d’)]=[JudgeTem(obj[‘morning_temperature’]), JudgeTem(obj[‘a(chǎn)fternoon_temperature’]), JudgeTem(obj[‘evening_temperature’])]

        ??? new_data = new_data.style.applymap(color, subset=new_data.columns)

        ??? output = io.BytesIO()? # 配置一個(gè)BytesIO 這個(gè)是為了轉(zhuǎn)二進(jìn)制流

        ??? new_data.to_excel(output)

        ??? output.seek(0)? # 把游標(biāo)歸0

        ??? response.write(output.getvalue())? # 寫入數(shù)據(jù)

        ??? output.close()? # 關(guān)閉

        ??? return response? # 返回

        延伸閱讀:

        二、Django 是什么

        Django 是一個(gè)高級(jí)的 Python 網(wǎng)絡(luò)框架,可以快速開(kāi)發(fā)安全和可維護(hù)的網(wǎng)站。由經(jīng)驗(yàn)豐富的開(kāi)發(fā)者構(gòu)建,Django 負(fù)責(zé)處理網(wǎng)站開(kāi)發(fā)中麻煩的部分,因此你可以專注于編寫應(yīng)用程序,而無(wú)需重新開(kāi)發(fā)。 它是免費(fèi)和開(kāi)源的,有活躍繁榮的社區(qū),豐富的文檔,以及很多免費(fèi)和付費(fèi)的解決方案。

        Django 可以使你的應(yīng)用具有以下優(yōu)點(diǎn):

        完備性

        Django 遵循“功能完備”的理念,提供開(kāi)發(fā)人員可能想要“開(kāi)箱即用”的幾乎所有功能。因?yàn)槟阈枰囊磺卸际且粋€(gè)”產(chǎn)品“的一部分,它們都可以無(wú)縫結(jié)合在一起,遵循一致性設(shè)計(jì)原則,并且具有廣泛和最新的文檔。

        通用性

        Django 可以(并已經(jīng))用于構(gòu)建幾乎任何類型的網(wǎng)站—從內(nèi)容管理系統(tǒng)和維基,到社交網(wǎng)絡(luò)和新聞網(wǎng)站。它可以與任何客戶端框架一起工作,并且可以提供幾乎任何格式(包括 HTML,Rss 源,JSON,XML 等)的內(nèi)容。你正在閱讀的網(wǎng)站就是基于 Django。

        在內(nèi)部,盡管它為幾乎所有可能需要的功能(例如幾個(gè)流行的數(shù)據(jù)庫(kù),模版引擎等)提供了選擇,但是如果需要,它也可以擴(kuò)展到使用其他組件。

        安全性

        Django 幫助開(kāi)發(fā)人員通過(guò)提供一個(gè)被設(shè)計(jì)為“做正確的事情”來(lái)自動(dòng)保護(hù)網(wǎng)站的框架來(lái)避免許多常見(jiàn)的安全錯(cuò)誤。例如,Django 提供了一種安全的方式來(lái)管理用戶賬戶和密碼,避免了常見(jiàn)的錯(cuò)誤,比如將 session 放在 cookie 中這種易受攻擊的做法(取而代之的是 cookies 只包含一個(gè)密鑰,實(shí)際數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中)或直接存儲(chǔ)密碼而不是密碼哈希。

        密碼哈希是通過(guò)密碼散列函數(shù)發(fā)送密碼而創(chuàng)建的固定長(zhǎng)度值。Django 能通過(guò)運(yùn)行哈希函數(shù)來(lái)檢查輸入的密碼 – 就是 – 將輸出的哈希值與存儲(chǔ)的哈希值進(jìn)行比較是否正確。然而由于功能的“單向”性質(zhì),即時(shí)存儲(chǔ)的哈希值受到威脅,攻擊者也難以解決原始密碼。(但其實(shí)有彩虹表 – 譯者觀點(diǎn))

        默認(rèn)情況下,Django 可以防范許多漏洞,包括 SQL 注入,跨站點(diǎn)腳本,跨站點(diǎn)請(qǐng)求偽造和點(diǎn)擊劫持。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)?

        一、什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)數(shù)據(jù)庫(kù)表結(jié)構(gòu)是指數(shù)據(jù)庫(kù)中表的組織和定義方式。它描述了表的名稱、列(字段)的定義和屬性,以及表與其他表之間的關(guān)系。...詳情>>

        2023-10-13 14:52:13
        MySQL日均10萬(wàn)數(shù)據(jù)永久保存實(shí)現(xiàn)高可用可以采用什么方案?

        一、MySQL日均10萬(wàn)數(shù)據(jù)永久保存實(shí)現(xiàn)高可用可以采用的方案1、數(shù)據(jù)庫(kù)集群使用MySQL數(shù)據(jù)庫(kù)集群來(lái)實(shí)現(xiàn)高可用性和負(fù)載均衡。可以使用主從復(fù)制(Maste...詳情>>

        2023-10-13 14:47:04
        類似博客這樣的圖文混排內(nèi)容在數(shù)據(jù)庫(kù)中是以什么形式保存的呢?

        一、圖文混排內(nèi)容在數(shù)據(jù)庫(kù)中的保存形式在數(shù)據(jù)庫(kù)中保存類似博客這樣的圖文混排內(nèi)容,可以使用以下幾種形式:1、文本字段(Text Field)可以使用...詳情>>

        2023-10-13 14:30:09
        Canal將MySQL數(shù)據(jù)同步到Elasticsearch怎么保證數(shù)據(jù)一致性?

        一、Canal將MySQL數(shù)據(jù)同步到Elasticsearch保證數(shù)據(jù)一致性的方法1、事務(wù)同步確保Canal捕獲到的MySQL數(shù)據(jù)是基于事務(wù)的。Canal會(huì)將整個(gè)事務(wù)的操作...詳情>>

        2023-10-13 14:27:06
        怎樣在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)一對(duì)多的關(guān)系怎樣存儲(chǔ)圖片和視頻?

        一、怎樣在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)一對(duì)多的關(guān)系怎樣存儲(chǔ)圖片和視頻1.圖片和視頻文件 不要存放在數(shù)據(jù)庫(kù)中,而應(yīng)該利用文件系統(tǒng)存放,數(shù)據(jù)庫(kù)中只存放讀取他...詳情>>

        2023-10-13 14:22:08
        快速通道
        江西省| 辽源市| 民丰县| 邵东县| 仪陇县| 大名县| 绥棱县| 登封市| 从江县| 娱乐| 天水市| 华容县| 乌苏市| 永寿县| 余姚市| 新巴尔虎右旗| 资源县| 建昌县| SHOW| 山西省| 恩平市| 长葛市| 兰坪| 夏邑县| 嫩江县| 麦盖提县| 鄯善县| 望奎县| 双峰县| 黄龙县| 耒阳市| 日照市| 平安县| 兴化市| 永城市| 遂川县| 东乌| 常宁市| 弥渡县| 土默特右旗| 化德县|