如何使用python在数据库中对项目进行可视化建模?
我有一个Django项目,目前在管理视图中为我的家庭网络建模.它目前描述了有哪些设备以及它们连接的内容.例如:
Devices:
Computer1
Computer2
Laptop1
Mobile1
Router1
ROuter2
ConnectionTypes:
Wireless24ghz
Wireless5ghz
cat5
cat5e
cat6
Connections:
host1:
src:Computer1
dst:Router1
con_type:cat5e
trunk1:
src:Router1
dst:Router2
con_type:cat6
host2:
src:Mobile1
dst:Router1
con_type:Wireless24ghz
Run Code Online (Sandbox Code Playgroud)
数据库比这更复杂,但是我现在保持简单,因为它并不重要.
我想知道的是,我如何使用python代码以图形方式模拟我的网络来查看数据库表?通过图形模型,我的意思是类似于Visio图表,我可以通过网页或应用程序看到它并且(不是必需的,但是巨大的奖励)与它进行交互.
是否有任何现有的python库提供这种功能?我理解JavaScript对于这种建模很有用,但我完全不确定我将如何去做.
值得注意的是,我并没有追求任何花哨的东西,只是将设备绘制为矩形和连接,因为矩形之间的线条足够好.
这个问题似乎相当迂腐,但是在尝试遵循 RFC 时感觉相当重要。我正在尝试编写一个 IRC 客户端,并且我正在使用 RFC 来遵循应该如何编写协议。我遇到了消息前缀部分,对所写的内容有些困惑。
每个 IRC 消息最多可以由三个主要部分组成:前缀(可选)、命令和命令参数(其中最多可能有 15 个)。前缀、命令和所有参数由一个(或多个)ASCII 空格字符 (0x20) 分隔。
前缀的存在由单个前导 ASCII 冒号字符 (':', 0x3b) 指示,该字符必须是消息本身的第一个字符。冒号和前缀之间不能有间隙(空格)。
我的问题是关于第二段的第一句;ASCII colon character (':', 0x3b). (据我所知)0x3b是分号的 ASCII 字符,这是否意味着前缀可能是分号或冒号,或者它只是文档中的一个错字?我现在继续使用冒号,但是我的好奇心一直困扰着我。
如果我希望在包含某个关键字的所有行上运行相同的命令,我可以使用global命令,或者对不包含该关键字的行使用vglobal命令.
例如,如果我有一个包含以下内容的文本文件:
hello world
testing with foo
another test with bar in it
another foo line
last test line
Run Code Online (Sandbox Code Playgroud)
:g/foo/d删除包含foo给我这个词的所有行:
hello world
another test with bar in it
last test line
Run Code Online (Sandbox Code Playgroud)
我可以使用此命令操作包含多个单词中的一个或多个的行; OR语句的某些内容.例如,删除包含单词fooOR的所有行bar,给我:
hello world
last test line
Run Code Online (Sandbox Code Playgroud)
谢谢
出于某种原因,我的Intellij IDEA IDE开始强调使用本地类之外的任何内容作为错误.它只针对我编写的包中的项目 - 例如,像java.*这样的包不会显示为错误.即使是joda-time依赖也没有错误亮点,它只是来自我自己的包.这个问题才在我为项目编写pom.xml后才开始出现,所以我假设它与maven有关.
例如,main以下行的红色为红色,并显示错误cannot resolve symbol 'main':
import main.java.com.jamobox.jamchatserver.clients.ClientReader;
然后在一个类被作为参数给出的实例中,例如
public void doSomething(Client c) { .. }
,我把类似的东西用
doSomething(new Client());
突出显示红色参数中的值
doSomething(Client) cannot be applied to doSomething(main.java.com.jamobox.jamchatserver.clients.Client)
正如我所说,代码编译并运行绝对正常,它只是认为出错的IDE.我已经尝试了这个类似问题中给出的所有答案,但似乎没有任何效果.
任何人都有任何想法如何解决这个问题?
万一它可以帮助任何人解决这个问题,这是我目前的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jamobox.jamchatserver</groupId>
<artifactId>JamChatServer</artifactId>
<name>JamChat Server</name>
<version>0.2.1</version>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
<type>jar</type>
<optional>false</optional>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)