فهرست منبع

#doc:系统中涉及的UML图

yangyi 1 هفته پیش
والد
کامیت
637767dbec
1فایلهای تغییر یافته به همراه555 افزوده شده و 0 حذف شده
  1. 555 0
      doc/pythonweb.drawio

+ 555 - 0
doc/pythonweb.drawio

@@ -0,0 +1,555 @@
+<mxfile host="Electron" pages="5">
+  <diagram name="模块架构图" id="jLxMpMlF1_AbIWO16nzs">
+    <mxGraphModel dx="1414" dy="844" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-27" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="tZD3rHwEwEOM7eqvy4jo-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-28" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-29" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-9">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-30" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-8">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-31" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-32" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-11">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#cce5ff;strokeColor=#36393d;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;官网&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="340" y="160" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;首页&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="120" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-33" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-14">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-34" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-13">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-35" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-12">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-36" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-15">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-5" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;学院简介&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="200" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-41" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-25">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="180" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-42" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-24">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="260" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-43" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-23">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="340" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-44" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-22">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-45" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-21">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="500" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-46" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-20">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="580" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-47" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-26">
+          <mxGeometry relative="1" as="geometry">
+            <Array as="points">
+              <mxPoint x="420" y="720" />
+              <mxPoint x="660" y="720" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;教师队伍&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="400" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;科研工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="280" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-37" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-19">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-38" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-18">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;招生就业&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="520" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-39" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-17">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-40" edge="1" parent="1" source="tZD3rHwEwEOM7eqvy4jo-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="tZD3rHwEwEOM7eqvy4jo-16">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0050ef;fontColor=#ffffff;strokeColor=#001DBC;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;党团工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="680" y="280" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;机构设置&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="240" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-13" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;领导分工&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="160" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-14" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;学院简介&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="80" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-15" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;专业介绍&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="320" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;团学工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="720" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-17" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;党建工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="640" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-18" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;就业工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="560" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-19" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;招生工作&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="480" y="521" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-20" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;数学教研室&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="560" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-21" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;物联网与网络&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="480" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-22" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;数字媒体技术&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="400" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-23" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;软件工程系&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="320" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-24" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;span style=&quot;font-size: 20px;&quot;&gt;计算机系&lt;/span&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="240" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-25" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;学设带头人&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="160" y="760" as="geometry" />
+        </mxCell>
+        <mxCell id="tZD3rHwEwEOM7eqvy4jo-26" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;党政学工队伍&lt;/font&gt;" vertex="1">
+          <mxGeometry height="160" width="40" x="640" y="760" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="tMRnj3Ii90gF6OoRP9JQ" name="核心业务时序图">
+    <mxGraphModel dx="1414" dy="844" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="x2dojdToHM6bM5_3dL-E-24" connectable="0" parent="1" style="group;fontStyle=0" value="U" vertex="1">
+          <mxGeometry height="840" width="720" x="40" y="40" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-1" parent="x2dojdToHM6bM5_3dL-E-24" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=14;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="用户" vertex="1">
+          <mxGeometry height="840" width="80" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-2" parent="x2dojdToHM6bM5_3dL-E-24" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=14;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="浏览器" vertex="1">
+          <mxGeometry height="840" width="80" x="160" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-3" edge="1" parent="x2dojdToHM6bM5_3dL-E-2" style="endArrow=classic;html=1;rounded=0;" target="x2dojdToHM6bM5_3dL-E-2" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="-40" y="120" />
+            </Array>
+            <mxPoint x="-120.5" y="120" as="sourcePoint" />
+            <mxPoint x="359.5" y="120" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-4" connectable="0" parent="x2dojdToHM6bM5_3dL-E-3" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;1.&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 16px; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;点击文章链接&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-5" parent="x2dojdToHM6bM5_3dL-E-24" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=14;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Django服务" vertex="1">
+          <mxGeometry height="840" width="80" x="320" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-6" edge="1" parent="x2dojdToHM6bM5_3dL-E-5" style="endArrow=classic;html=1;rounded=0;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="-39.5" y="200" />
+            </Array>
+            <mxPoint x="-120" y="200" as="sourcePoint" />
+            <mxPoint x="40.5" y="200" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-7" connectable="0" parent="x2dojdToHM6bM5_3dL-E-6" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;2.HTTP GET /article/1&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-8" parent="x2dojdToHM6bM5_3dL-E-24" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=14;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="视图函数" vertex="1">
+          <mxGeometry height="840" width="80" x="480" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-9" parent="x2dojdToHM6bM5_3dL-E-24" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=14;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="SQLite 数据库" vertex="1">
+          <mxGeometry height="840" width="80" x="640" as="geometry" />
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-10" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=classic;html=1;rounded=0;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="440.5" y="280" />
+            </Array>
+            <mxPoint x="360" y="280" as="sourcePoint" />
+            <mxPoint x="520.5" y="280" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-11" connectable="0" parent="x2dojdToHM6bM5_3dL-E-10" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3.URL匹配分发&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-12" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=classic;html=1;rounded=0;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="600.5" y="360" />
+            </Array>
+            <mxPoint x="520" y="360" as="sourcePoint" />
+            <mxPoint x="680.5" y="360" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-13" connectable="0" parent="x2dojdToHM6bM5_3dL-E-12" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;4.Article.objects.filter(id=1)&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-14" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="600.5" y="440" />
+            </Array>
+            <mxPoint x="520" y="440" as="sourcePoint" />
+            <mxPoint x="680.5" y="440" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-15" connectable="0" parent="x2dojdToHM6bM5_3dL-E-14" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;5.返回文章数据&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-16" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="440.5" y="600" />
+            </Array>
+            <mxPoint x="360" y="600" as="sourcePoint" />
+            <mxPoint x="520.5" y="600" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-17" connectable="0" parent="x2dojdToHM6bM5_3dL-E-16" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;7.返回content&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-18" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="280.5" y="680" />
+            </Array>
+            <mxPoint x="200" y="680" as="sourcePoint" />
+            <mxPoint x="360.5" y="680" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-19" connectable="0" parent="x2dojdToHM6bM5_3dL-E-18" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;8.返回HTTP响应&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-20" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="120.5" y="760" />
+            </Array>
+            <mxPoint x="40" y="760" as="sourcePoint" />
+            <mxPoint x="200.5" y="760" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-21" connectable="0" parent="x2dojdToHM6bM5_3dL-E-20" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;9.渲染文章详情&lt;/span&gt;&lt;/div&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1687" y="1" as="geometry">
+            <mxPoint x="14" y="-19" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-22" edge="1" parent="x2dojdToHM6bM5_3dL-E-24" source="x2dojdToHM6bM5_3dL-E-8" style="edgeStyle=segmentEdgeStyle;endArrow=classic;html=1;curved=1;rounded=0;endSize=8;startSize=8;sourcePerimeterSpacing=0;targetPerimeterSpacing=0;" value="">
+          <mxGeometry relative="1" width="100" as="geometry">
+            <Array as="points">
+              <mxPoint x="570" y="480" />
+              <mxPoint x="570" y="560" />
+            </Array>
+            <mxPoint x="540" y="520" as="sourcePoint" />
+            <mxPoint x="519.5" y="560" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x2dojdToHM6bM5_3dL-E-23" connectable="0" parent="x2dojdToHM6bM5_3dL-E-22" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;6.markdown.markdown()渲染&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.0773" y="-4" as="geometry">
+            <mxPoint y="7" as="offset" />
+          </mxGeometry>
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="03l7wirWeL4ZO0EjccCT" name="部署架构图">
+    <mxGraphModel dx="1414" dy="844" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-4" edge="1" parent="1" source="fnpvW5hEuZyvgxW7vroQ-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="fnpvW5hEuZyvgxW7vroQ-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-10" connectable="0" parent="fnpvW5hEuZyvgxW7vroQ-4" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="Text" vertex="1">
+          <mxGeometry relative="1" x="-0.1" y="3" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-11" connectable="0" parent="fnpvW5hEuZyvgxW7vroQ-4" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;HTTP 443&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.025" y="1" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;用户&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="80" x="240" y="120" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;nginx&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="80" x="240" y="240" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=center;horizontal=1;fillColor=#1ba1e2;fontColor=#ffffff;strokeColor=#006EAF;" value="&lt;h1 style=&quot;&quot;&gt;&lt;br&gt;&lt;/h1&gt;" vertex="1">
+          <mxGeometry height="200" width="320" x="120" y="360" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="" vertex="1">
+          <mxGeometry height="120" width="160" x="200" y="400" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-8" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;docker容器&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="200" y="520" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-5" edge="1" parent="1" source="fnpvW5hEuZyvgxW7vroQ-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="fnpvW5hEuZyvgxW7vroQ-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-13" connectable="0" parent="fnpvW5hEuZyvgxW7vroQ-5" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;HTTP 8000&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.3333" y="2" as="geometry">
+            <mxPoint as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-6" parent="1" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;sqllite&lt;/font&gt;" vertex="1">
+          <mxGeometry height="80" width="80" x="240" y="440" as="geometry" />
+        </mxCell>
+        <mxCell id="fnpvW5hEuZyvgxW7vroQ-15" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;django server&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="200" y="400" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="WDs0AwhKa-W1prllXyrJ" name="工作流程图">
+    <mxGraphModel dx="1414" dy="844" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-12" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-2">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;项目启动&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="40" y="80" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-13" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-3">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;需求分析&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="40" y="160" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-14" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-4">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;技术选型&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="40" y="240" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-15" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-5">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;Django项目初始化&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="40" y="320" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-16" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-6">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-5" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;settings.py配置&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="40" y="400" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-17" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-10">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;数据模型设计&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="280" y="400" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-19" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-8">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;base.html基础模板设计&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="280" y="240" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-20" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-11">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;子模块分发与整合&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="280" y="160" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-18" edge="1" parent="1" source="ZkRsbQxRnHzIiR353cRR-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="ZkRsbQxRnHzIiR353cRR-7">
+          <mxGeometry relative="1" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;font&gt;路由架构设计&lt;/font&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="280" y="320" as="geometry" />
+        </mxCell>
+        <mxCell id="ZkRsbQxRnHzIiR353cRR-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fontSize=16;" value="&lt;span&gt;项目成果部署到docker&lt;/span&gt;" vertex="1">
+          <mxGeometry height="40" width="160" x="280" y="80" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+  <diagram id="HtuOMwaQ-O22_9W8Iklx" name="数据采集时序图">
+    <mxGraphModel dx="1414" dy="844" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+      <root>
+        <mxCell id="0" />
+        <mxCell id="1" parent="0" />
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-22" connectable="0" parent="1" style="group;fontStyle=0" value="" vertex="1">
+          <mxGeometry height="760" width="720" x="40" y="320" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-1" parent="3_4bCmapMNVM9Zofa2Aa-22" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=13;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="爬虫程序 artUtil.py" vertex="1">
+          <mxGeometry height="760" width="80" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-2" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-1" style="endArrow=classic;html=1;rounded=0;" target="3_4bCmapMNVM9Zofa2Aa-4" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="39.44736842105249" y="120" as="sourcePoint" />
+            <mxPoint x="150" y="120" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-3" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" value="&lt;font&gt;1.HTTP GET&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1855" y="-4" as="geometry">
+            <mxPoint x="15" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-4" parent="3_4bCmapMNVM9Zofa2Aa-22" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=13;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="目标网站" vertex="1">
+          <mxGeometry height="760" width="80" x="160" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-5" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-4" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="-120" y="200" as="sourcePoint" />
+            <mxPoint x="40.55263157894751" y="200" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-6" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-5" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;2.返回HTML&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.0638" y="-4" as="geometry">
+            <mxPoint x="5" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-7" parent="3_4bCmapMNVM9Zofa2Aa-22" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=13;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="BeautifulSoup" vertex="1">
+          <mxGeometry height="760" width="80" x="320" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-8" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-7" style="endArrow=classic;html=1;rounded=0;" target="3_4bCmapMNVM9Zofa2Aa-11" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="-280" y="680" as="sourcePoint" />
+            <mxPoint x="200" y="680" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-9" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-8" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" value="&lt;font&gt;8.将文章的markdown保存到文件中&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1855" y="-4" as="geometry">
+            <mxPoint x="74" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-10" parent="3_4bCmapMNVM9Zofa2Aa-22" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=13;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="markdownify" vertex="1">
+          <mxGeometry height="760" width="80" x="480" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-11" parent="3_4bCmapMNVM9Zofa2Aa-22" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fontSize=13;fontColor=#000000;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="文件系统" vertex="1">
+          <mxGeometry height="760" width="80" x="640" as="geometry" />
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-12" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-22" style="endArrow=classic;html=1;rounded=0;" target="3_4bCmapMNVM9Zofa2Aa-7" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="40" y="280" as="sourcePoint" />
+            <mxPoint x="200.5526315789475" y="280" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-13" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-12" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" value="&lt;font&gt;3.解析HTML&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1855" y="-4" as="geometry">
+            <mxPoint x="15" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-14" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-22" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="39.97736842105249" y="360" as="sourcePoint" />
+            <mxPoint x="360.03" y="360" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-15" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-14" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;4.返回文章的title和content&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.0638" y="-4" as="geometry">
+            <mxPoint x="5" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-16" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-22" style="endArrow=classic;html=1;rounded=0;" target="3_4bCmapMNVM9Zofa2Aa-10" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="40" y="440" as="sourcePoint" />
+            <mxPoint x="360" y="440" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-17" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-16" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" value="&lt;font&gt;5.将content转换为markdown格式的文本&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.1855" y="-4" as="geometry">
+            <mxPoint x="44" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-18" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-22" source="3_4bCmapMNVM9Zofa2Aa-1" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;dashed=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <mxPoint x="199.97000000000003" y="520" as="sourcePoint" />
+            <mxPoint x="520.0226315789475" y="520" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-19" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-18" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;6.返回markdown格式的文章&lt;/font&gt;" vertex="1">
+          <mxGeometry relative="1" x="-0.0638" y="-4" as="geometry">
+            <mxPoint x="25" y="-24" as="offset" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-20" edge="1" parent="3_4bCmapMNVM9Zofa2Aa-22" style="endArrow=classic;html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=1;" value="">
+          <mxGeometry height="50" relative="1" width="50" as="geometry">
+            <Array as="points">
+              <mxPoint x="80" y="560" />
+              <mxPoint x="80" y="640" />
+            </Array>
+            <mxPoint x="39" y="560" as="sourcePoint" />
+            <mxPoint x="39.44736842105249" y="640" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3_4bCmapMNVM9Zofa2Aa-21" connectable="0" parent="3_4bCmapMNVM9Zofa2Aa-20" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" value="7.补全markdown中的图片链接" vertex="1">
+          <mxGeometry relative="1" x="0.008" y="4" as="geometry">
+            <mxPoint x="56" as="offset" />
+          </mxGeometry>
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>