Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 在线欧美日韩,精品哟哟国产在线观看,国产靠逼视频

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線:

          Shopify訂單狀態(tài)JavaScript資產(chǎn)介紹

          單狀態(tài) JavaScript 資產(chǎn)

          您可以通過(guò)使用 Shopify 后臺(tái)中的自定義腳本框,將 JavaScript 添加到結(jié)帳的訂單狀態(tài)頁(yè)面(以前稱(chēng)為“感謝”頁(yè)面)。

          Shopify.Checkout.OrderStatus JavaScript 資產(chǎn)可用于向訂單狀態(tài)頁(yè)面添加多種類(lèi)型的內(nèi)容,包括:

          -特定產(chǎn)品的備注

          -單個(gè)發(fā)貨方式的說(shuō)明

          -數(shù)字產(chǎn)品的下載鏈接。

          也可以通過(guò) ScriptTag 訪問(wèn)此 JavaScript 資源。

          如何實(shí)現(xiàn)

          Shopify.Checkout.OrderStatus 包含用于生成新內(nèi)容的函數(shù):

          addContentBox(params)

          此函數(shù)添加一個(gè)內(nèi)容框,從其中傳遞給該函數(shù)的每個(gè)參數(shù)都呈現(xiàn)為單獨(dú)的行。

          函數(shù)內(nèi)部支持 HTML5,并且您可以在函數(shù)外部使用 liquid。

          示例

          您可以在使用了特定的發(fā)貨方式時(shí)添加內(nèi)容:

          {% if checkout.shipping_method.title == 'Pick-up at the store' %}

          Shopify.Checkout.OrderStatus.addContentBox(

          '

          Pick-up in store

          ',

          '

          We are open everyday from 9am to 5pm.

          '

          )

          {% endif %}

          (來(lái)源:Shopify)

          以上內(nèi)容屬作者個(gè)人觀點(diǎn),不代表雨果網(wǎng)立場(chǎng)!如有侵權(quán),請(qǐng)聯(lián)系我們。

          相關(guān)鏈接:Shopify后臺(tái)怎么復(fù)制現(xiàn)有訂單?Shopify復(fù)制現(xiàn)有訂單操作一覽


          4、實(shí)現(xiàn)文件下載功能

          之前我們?cè)谇岸隧?yè)面的操作處,只是直接顯示了下載兩個(gè)字,現(xiàn)在我們要想實(shí)現(xiàn)點(diǎn)擊“下載”文本鏈接時(shí)將相應(yīng)的文件下載到電腦中。我們先修改index.html文件:

          <td><a href="download/?fileurl={{ row_data.fileObj }}">下載</a></td>

          通過(guò)get方式向后臺(tái)download路由傳遞數(shù)據(jù)。

          然后我們修改urls.py,注意這里由于要使用正則表達(dá)式,所以用的re_path:

          re_path('download/(?P<fileurl>.*)',views.Download,name='download'),

          注:fileurl不知為什么沒(méi)起使用

          接著編寫(xiě)了views.py中的代碼:

          def Download(request,fileurl):
              url = os.path.join("." + MEDIA_URL,request.GET['fileurl'])
              file_name = re.findall(".*/(.*?$)",url)[0]
              response = StreamingHttpResponse(file_iterator(url))
              # 以流的形式下載文件,這樣可以實(shí)現(xiàn)任意格式的文件下載
              response['Content-Type'] = 'application/octet-stream'
              # Content-Disposition就是當(dāng)用戶(hù)想把請(qǐng)求所得的內(nèi)容存為一個(gè)文件的時(shí)候提供一個(gè)默認(rèn)的文件名
              response['Content-Disposition'] = 'attachment;filename="{}"'.format(file_name)
              return response

          這個(gè)函數(shù)的作用是取得url,注意url完整地址是:./upload/年/月/日/文件名,在這里我搞了很久很久。

          網(wǎng)上還提供了一個(gè)文件生成器:

          def file_iterator(file_path, chunk_size=512):
              """
              文件生成器,防止文件過(guò)大,導(dǎo)致內(nèi)存溢出
              :param file_path: 文件絕對(duì)路徑
              :param chunk_size: 塊大小
              :return: 生成器
              """
              with open(file_path, mode='rb') as f:
                  while True:
                      c = f.read(chunk_size)
                      if c:
                          yield c
                      else:
                          break

          最后重啟服務(wù),點(diǎn)擊下載,但毫不意外的又出現(xiàn)了意外,但凡文件名中有中文的,下載時(shí)僅顯示一個(gè)download:

          上網(wǎng)搜索了一下:

          導(dǎo)入一個(gè)方法:

          from django.utils.encoding import escape_uri_path

          然后在將該方法應(yīng)用到file_name上:

          response['Content-Disposition'] = 'attachment;filename="{}"'.format(escape_uri_path(file_name))

          再次點(diǎn)擊下載,終于成功了!

          15、后臺(tái)創(chuàng)建幾個(gè)操作員

          目前為止,只有一個(gè)administrator帳號(hào),為了交付給同事使用,需要?jiǎng)?chuàng)建幾個(gè)帳號(hào)。

          首先我們通過(guò)127.0.0.1:8000/admin登錄后臺(tái)管理,在站點(diǎn)管理這里增加帳號(hào):

          增加了一個(gè)帳戶(hù)后,我們通過(guò)右上角的“注銷(xiāo)”來(lái)退出administrator,然后使用新的帳號(hào)進(jìn)行登錄。

          昨天創(chuàng)建帳號(hào)后,密碼是明文,我還特意去網(wǎng)上找了解決方法,本來(lái)今天要寫(xiě)到這個(gè)文檔中,結(jié)果今天發(fā)現(xiàn)又正常了,不過(guò)我決定還是將其寫(xiě)到這一步驟當(dāng)中,只能說(shuō)Django中真的是太多坑了!

          16、解決在后臺(tái)創(chuàng)建用戶(hù)后,因?yàn)槊艽a是明文而無(wú)法登錄的問(wèn)題:

          先在models.py中創(chuàng)建一個(gè)UserProfile的表,該表繼承自AbstractUser,添加如下代碼:

          from django.contrib.auth.models import AbstractUser
          from django.db import models
          
          class UserProfile(AbstractUser):
              phone = models.CharField(max_length=11,verbose_name='手機(jī)號(hào)',null=True,blank=True)

          然后在admini.py中添加如下代碼:

          from django.contrib import admin
          from django.contrib.auth.admin import UserAdmin
          from django.utils.translation import gettext_lazy
          
          from .models import UserProfile
          
          @admin.register(UserProfile)
          class UserProfileAdmin(UserAdmin):
              list_display = ['username','password']
              list_per_page = 10
          
              add_fieldsets = (
                  (None, {u'fields': ('username', 'password1', 'password2')}),
                  (gettext_lazy('User Information'), {'fields': ( 'phone',)}),
                               )

          這樣添加后,在admin后臺(tái)創(chuàng)建用戶(hù)后就能解決了。

          17、為新創(chuàng)建的用戶(hù)添加管理訂單附件的權(quán)限

          由于會(huì)有多個(gè)人參與附件管理,所以在修改用戶(hù)信息時(shí),給創(chuàng)建了一個(gè)組,并為組選擇了如下幾個(gè)權(quán)限:

          這樣的話以后新增加上傳用戶(hù)時(shí)只需要選擇這個(gè)組就可以了,更加方便管理。

          天給大家演示的是一款由jsp+servlet+mysql實(shí)現(xiàn)的在線圖書(shū)商城系統(tǒng),主要分為前臺(tái)后后臺(tái)管理員功能,前臺(tái)用戶(hù)可以瀏覽查看各類(lèi)圖書(shū)信息,可自定義搜索,注冊(cè)登錄后可以將書(shū)添加到購(gòu)物車(chē),購(gòu)物車(chē)中的商品可以提交訂單,本系統(tǒng)集成了在線支付的接口,但是個(gè)人沒(méi)有辦法申請(qǐng)?jiān)诰€支付的賬號(hào),所以我在后臺(tái)加了個(gè)管理員可以模擬支付成功的按鈕,方便大家走完流程,如果你有可以申請(qǐng)?jiān)诰€支付的資格的話也可以申請(qǐng)后把a(bǔ)ppid和secret填到配置文件中就可以在線支付了。后臺(tái)管理員可以管理圖書(shū)分類(lèi)信息、圖書(shū)信息、訂單信息等等。系統(tǒng)項(xiàng)目源代碼在【猿來(lái)入此】獲取!https://www.yuanlrc.com/product/details.html?pid=173&fuid=6666此外本系統(tǒng)配置有完整的論文、開(kāi)題報(bào)告、前后臺(tái)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)文檔及答辯細(xì)節(jié)提問(wèn)答疑等,還有論文寫(xiě)作指導(dǎo)教程,非常詳細(xì),還配有視頻配置導(dǎo)入運(yùn)行教程和快速修改系統(tǒng)教程,


          主站蜘蛛池模板: 国产成人av一区二区三区不卡| 人妻体内射精一区二区| 亚洲色一区二区三区四区| 日亚毛片免费乱码不卡一区| 国产成人无码一区二区三区在线| 天堂资源中文最新版在线一区| 精品国产一区二区三区在线| 国产亚洲综合一区柠檬导航 | 日韩免费无码一区二区三区| 国产成人一区二区三区| 国产精品熟女一区二区| 免费观看日本污污ww网站一区 | 无码毛片视频一区二区本码 | AV怡红院一区二区三区| 中文字幕日韩欧美一区二区三区| 久久99热狠狠色精品一区| 国产av夜夜欢一区二区三区| 亚洲av色香蕉一区二区三区蜜桃| 久久se精品一区二区| 精品免费久久久久国产一区 | 亚洲国产一区明星换脸| 国产精品无码一区二区在线观| 久久国产精品亚洲一区二区| 内射女校花一区二区三区| 中文字幕一区二区视频| 亚洲高清偷拍一区二区三区| 成人免费视频一区二区| 国产一区二区三区福利| 精品国产精品久久一区免费式 | 国产一区二区三区在线免费观看| 国产福利酱国产一区二区| 精品综合一区二区三区| 亚洲国模精品一区| 国模无码人体一区二区| 台湾无码一区二区| 麻豆AV天堂一区二区香蕉| 国产成人无码aa精品一区| 亚洲国产精品一区二区三区久久| 国产亚洲一区二区手机在线观看 | 在线一区二区三区| 一区二区三区无码高清视频|