国产睡熟迷奷白丝护士系列精品,免费国产精品专区,亚洲精选中文字幕,性欲福利视频网网站

  • <pre id="344ob"></pre>
      1. <track id="344ob"></track>
      2. <button id="344ob"></button><small id="344ob"></small>
          資訊財經(jīng)娛樂科技汽車時尚企業(yè)游戲商訊消費購物微商

          Python信息系統(tǒng)實驗:倉庫管理

          2020-03-30 07:47:02 來源: 閱讀:-

          Python信息系統(tǒng)實驗:倉庫管理

          這是給物流管理專業(yè)設(shè)計的倉庫信息管理實驗。盡量采用基本的方式組織數(shù)據(jù)、模塊與實驗。同時體現(xiàn)Browser-Application Server-Database 的三層邏輯。

          實驗要求

          軟件

          • 開發(fā)工具:Python+ Flask+HTML
          • 數(shù)據(jù)庫:SQLite
          • 架構(gòu):三層架構(gòu)(Browser+Application Servier+Database)

          倉庫管理實驗

          模擬一個簡單的倉庫的以下基本管理過程:

          • 1)庫位查詢:查詢庫位編碼及其容量
          • 2)增加庫位
          • 3)刪除庫位
          • 4)入庫:商品編碼、庫位
          • 5)出庫:商品編碼
          • 6)商品庫位查詢:根據(jù)商品編碼找?guī)煳?/li>
          • 7)庫位統(tǒng)計

          數(shù)據(jù)庫表格

          • StorageUnit: scode text, ssize int;
          • Storage: scode text, ccode text, cname text, status text (=in, out)

          Web Flask

          關(guān)于Flask請參考前文。Flask可以做很復(fù)雜的應(yīng)用,但是本文僅僅利用其最簡單的能力完成幾個頁面和功能之間的切換。

          幾分鐘做個Web應(yīng)用

          from flask import Flask
          from flask import session, redirect, url_for, request
          from flask import render_template

          數(shù)據(jù)訪問接口

          關(guān)于數(shù)據(jù)庫及其訪問接口,請參考前文。

          Python數(shù)據(jù)庫

          from Data import Data

          導(dǎo)航

          采用三組菜單導(dǎo)航

          • 基本功能組:主頁index、關(guān)于about、登錄login
          • 對存儲單元的操縱,主要是列表顯示StorageUnitList、增加StorageUnitAdd和刪除StorageUnitDelete
          • 對存儲記錄的操縱,主要是列表顯示StorageList、增加StorageAdd和刪除StorageDelete
          • 對于Add和Delete這兩類Action,生成表單Form和執(zhí)行更新分開來,,例如StorageAdd生成Form,而StorageAddExe執(zhí)行
          • 在login,StorageUnitAddExe,StorageUnitDeleteExe,StorageAddExe,StorageDeleteExe中,通過session或request操縱交互數(shù)據(jù)。
          app = Flask(__name__)

          @app.route(&#39;/&#39;)
          def index():
          if &#39;username&#39; in session:
          return redirect(url_for(&#39;StorageUnitList&#39;))
          else:
          return redirect(url_for(&#39;login&#39;))

          @app.route(&#39;/about&#39;)
          def about():
          return render_template(&#39;about.html&#39;, name=&#39;Flask&#39;)

          @app.route(&#39;/login&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def login():
          if request.method == &#39;POST&#39;:
          u = request.form[&#39;username&#39;]
          if u is None or len(u)==0:
          return redirect(url_for(&#39;login&#39;))
          session[&#39;username&#39;] = u
          return redirect(url_for(&#39;StorageUnitList&#39;))
          return &#39;&#39;&#39;
          &lt;center&gt;
          Warehouse management&lt;br&gt;&lt;br&gt;
          &lt;table border=1&gt;
          &lt;form action=&#34;&#34; method=&#34;post&#34;&gt;
          &lt;tr&gt;
          &lt;td&gt;user name&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=username&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;input type=submit value=Login&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;/form&gt;
          &lt;/table&gt;
          &lt;/center&gt;
          &#39;&#39;&#39;

          @app.route(&#39;/StorageUnitList&#39;)
          def StorageUnitList():
          db = Data()
          db.createDatabase()
          d = db.selectStorageUnit()
          return render_template(&#39;StorageUnitList.html&#39;, data=d)

          @app.route(&#39;/StorageUnitAdd&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageUnitAdd():
          return &#39;&#39;&#39;
          &lt;center&gt;
          Warehouse management --&gt; add a Storage Unit&lt;br&gt;&lt;br&gt;
          &lt;table border=1&gt;
          &lt;form action=&#34;StorageUnitAddExe&#34; method=&#34;post&#34;&gt;
          &lt;tr&gt;
          &lt;td&gt;code&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=scode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;size&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=ssize&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;input type=submit value=OK&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;/form&gt;
          &lt;/table&gt;
          &lt;/center&gt;
          &#39;&#39;&#39;

          @app.route(&#39;/StorageUnitAddExe&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageUnitAddExe():
          scode = request.form[&#39;scode&#39;]
          ssize = request.form[&#39;ssize&#39;]
          if scode is not None and len(scode)&gt;0 and \
          ssize is not None and len(ssize)&gt;0:
          db = Data()
          db.createDatabase()
          db.insertStorageUnit(scode,ssize);
          return redirect(url_for(&#39;StorageUnitList&#39;))

          @app.route(&#39;/StorageUnitDelete&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageUnitDelete():
          return &#39;&#39;&#39;
          &lt;center&gt;
          Warehouse management --&gt; delete a Storage Unit&lt;br&gt;&lt;br&gt;
          &lt;table border=1&gt;
          &lt;form action=&#34;StorageUnitDeleteExe&#34; method=&#34;post&#34;&gt;
          &lt;tr&gt;
          &lt;td&gt;code&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=scode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;input type=submit value=OK&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;/form&gt;
          &lt;/table&gt;
          &lt;/center&gt;
          &#39;&#39;&#39;

          @app.route(&#39;/StorageUnitDeleteExe&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageUnitDeleteExe():
          scode = request.form[&#39;scode&#39;]
          if scode is not None and len(scode)&gt;0:
          db = Data()
          db.createDatabase()
          db.deleteStorageUnit(scode);
          return redirect(url_for(&#39;StorageUnitList&#39;))



          @app.route(&#39;/StorageList&#39;)
          def StorageList():
          db = Data()
          db.createDatabase()
          d = db.selectStorage()
          return render_template(&#39;StorageList.html&#39;, data=d)

          @app.route(&#39;/StorageAdd&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageAdd():
          return &#39;&#39;&#39;
          &lt;center&gt;
          Warehouse management --&gt; add a Storage&lt;br&gt;&lt;br&gt;
          &lt;table border=1&gt;
          &lt;form action=&#34;StorageAddExe&#34; method=&#34;post&#34;&gt;
          &lt;tr&gt;
          &lt;td&gt;storage unit code &lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=scode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;goods code &lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=ccode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;goods name &lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=cname&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;status &lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=status&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;input type=submit value=OK&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;/form&gt;
          &lt;/table&gt;
          &lt;/center&gt;
          &#39;&#39;&#39;

          @app.route(&#39;/StorageAddExe&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageAddExe():
          scode = request.form[&#39;scode&#39;]
          ccode = request.form[&#39;ccode&#39;]
          cname = request.form[&#39;cname&#39;]
          status = request.form[&#39;status&#39;]
          if scode is not None and len(scode)&gt;0 and ccode is not None and \
          len(ccode)&gt;0 and cname is not None and \
          len(cname)&gt;0 and status is not None and len(status)&gt;0:
          db = Data()
          db.createDatabase()
          if len(db.selectStorageUnitBy(scode))&gt;0:
          db.insertStorage(scode,ccode,cname,status);
          return redirect(url_for(&#39;StorageList&#39;))

          @app.route(&#39;/StorageDelete&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageDelete():
          return &#39;&#39;&#39;
          &lt;center&gt;
          Warehouse management --&gt; delete a Storage Unit&lt;br&gt;&lt;br&gt;
          &lt;table border=1&gt;
          &lt;form action=&#34;StorageDeleteExe&#34; method=&#34;post&#34;&gt;
          &lt;tr&gt;
          &lt;td&gt;storage unit code&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=scode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;goods code&lt;/td&gt;
          &lt;td&gt;&lt;input type=text name=ccode&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;&lt;/td&gt;
          &lt;td&gt;&lt;input type=submit value=OK&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;/form&gt;
          &lt;/table&gt;
          &lt;/center&gt;
          &#39;&#39;&#39;

          @app.route(&#39;/StorageDeleteExe&#39;, methods=[&#39;GET&#39;, &#39;POST&#39;])
          def StorageDeleteExe():
          scode = request.form[&#39;scode&#39;]
          ccode = request.form[&#39;ccode&#39;]
          if scode is not None and len(scode)&gt;0 and \
          ccode is not None and len(ccode)&gt;0:
          db = Data()
          db.createDatabase()
          db.deleteStorage(scode, ccode);
          return redirect(url_for(&#39;StorageList&#39;))

          # set the secret key:
          app.secret_key = &#39;A0Zr98j/3yX R~XHH!jmN]LWX/,?RT**^4&#39;

          if __name__ == &#39;__main__&#39;:
          app.run()

          # Flask:
          # http://docs.jinkan.org/docs/flask/index.html
          # Template:
          # http://docs.jinkan.org/docs/jinja2/

          Web頁面

          • 如上代碼所隱含,使用了一個靜態(tài)文件,即about.html;
          • 使用了兩個模板文件,用于生成檢索數(shù)據(jù)庫表生成的列表,即StorageList.html和StorageUnitList.html;
          • 注意在login,StorageUnitAdd,StorageUnitDelete,StorageAdd,StorageDelete中都生成了Form,這些內(nèi)容是在瀏覽器前端顯示的。

          about.html

          &lt;html&gt;
          &lt;body&gt;
          &lt;center&gt;
          Warehouse management: this is just a test application for demonstrating logistics information systems.&lt;br&gt;
          &lt;br&gt;
          &lt;table border=1&gt;
          &lt;tr&gt;
          &lt;td colspan=4&gt;Menu&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage Unit&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;System&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;about&#39;&gt;about&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;login&#39;&gt;login&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/&#39;&gt;index&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;table&gt;
          &lt;/center&gt;
          &lt;/body&gt;
          &lt;/html&gt;

          StorageList.html

          &lt;html&gt;
          &lt;body&gt;
          &lt;center&gt;
          Warehouse management -&gt; Storage&lt;br&gt;
          &lt;br&gt;
          &lt;table border=1&gt;
          &lt;tr&gt;
          &lt;td colspan=4&gt;Menu&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage Unit&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;System&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;about&#39;&gt;about&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;login&#39;&gt;login&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/&#39;&gt;index&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;table&gt;

          &lt;br&gt;
          &lt;table border=1&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage Unit Code&lt;/td&gt;
          &lt;td&gt;Goods Code&lt;/td&gt;
          &lt;td&gt;Goods Name&lt;/td&gt;
          &lt;td&gt;Status&lt;/td&gt;
          &lt;tr&gt;
          {% for a in data %}
          &lt;tr&gt;
          &lt;td&gt;{{ a[0] }}&lt;/td&gt;
          &lt;td&gt;{{ a[1] }}&lt;/td&gt;
          &lt;td&gt;{{ a[2] }}&lt;/td&gt;
          &lt;td&gt;{{ a[3] }}&lt;/td&gt;
          &lt;/tr&gt;
          {% endfor %}
          &lt;table&gt;
          &lt;/center&gt;
          &lt;/body&gt;
          &lt;/html&gt;

          StorageUnitList.html

          &lt;html&gt;
          &lt;body&gt;
          &lt;center&gt;
          Warehouse management -&gt; Storage Units&lt;br&gt;
          &lt;br&gt;
          &lt;table border=1&gt;
          &lt;tr&gt;
          &lt;td colspan=4&gt;Menu&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage Unit&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageUnitDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;Storage&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageList&#39;&gt;list&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageAdd&#39;&gt;add&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/StorageDelete&#39;&gt;delete&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
          &lt;td&gt;System&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;about&#39;&gt;about&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;login&#39;&gt;login&lt;/a&gt;]&lt;/td&gt;
          &lt;td&gt;[&lt;a href=&#39;/&#39;&gt;index&lt;/a&gt;]&lt;/td&gt;
          &lt;/tr&gt;
          &lt;table&gt;

          &lt;br&gt;
          &lt;table border=1&gt;
          &lt;tr&gt;&lt;td&gt;Code&lt;/td&gt;&lt;td&gt;Size&lt;/td&gt;&lt;tr&gt;
          {% for a in data %}
          &lt;tr&gt;
          &lt;td&gt;{{ a[0] }}&lt;/td&gt;
          &lt;td&gt;{{ a[1] }}&lt;/td&gt;
          &lt;/tr&gt;
          {% endfor %}
          &lt;table&gt;
          &lt;/center&gt;
          &lt;/body&gt;
          &lt;/html&gt;

          測試

          在Anaconda Spyder中執(zhí)行index.py,得到:

           * Serving Flask app &#34;index&#34; (lazy loading)
          * Environment: production
          WARNING: This is a development server. Do not use it in a production deployment.
          Use a production WSGI server instead.
          * Debug mode: off
          * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

          在瀏覽器輸入以下網(wǎng)址測試: http://127.0.0.1:5000/

          Login

          Storage Unit: List

          Storage Unit: Add

          Storage Unit: Delete

          Storage: List

          Storage: Add

          Storage: Delete

          私信小編01 領(lǐng)取完整代碼

          推薦閱讀:手機(jī)充電寶品牌排行

          查看心情排行你看到此篇文章的感受是:


          • 支持

          • 高興

          • 震驚

          • 憤怒

          • 無聊

          • 無奈

          • 謊言

          • 槍稿

          • 不解

          • 標(biāo)題黨
          要聞排行
          精彩推薦