我将如何创建可运行django项目的gui?

时间:2019-05-10 07:14:44

标签: django user-interface exe executable

我有一个Django项目,我想创建一个简单的python GUI,以允许用户随时随地更改主机地址和端口,而无需与命令提示符进行交互。我已经有一个简单的python用户界面,但是我将如何在python中进行编码,从而能够运行诸如python manage.py createsuperuser之类的命令并填写所需信息,而无需在python脚本中运行该脚本只需调用常规的终端命令,例如:

subprocess.call(["python","manage.py", "createsuperuser"])

我不知道这是没有命令就可以做的事情,但是从那时起我可以将其实现到我的基本python GUI中,这将使用户能够createsuperuser,{{1 }},runservermakemigrations,甚至可以随时随地更改默认主机和端口。

1 个答案:

答案 0 :(得分:3)

您可以从此代码使用并更改所需的每个命令,请注意,如果运行此命令,则外壳必须位于django项目文件夹中 如果需要,可以在django run命令之前使用“ CD”命令更改方向

from subprocess import Popen

from sys import stdout, stdin, stderr

Popen('python manage.py runserver', shell=True, stdin=stdin, stdout=stdout ,stderr=stderr)

您可以通过以下代码与Shell通信:

from subprocess import Popen, PIPE

from sys import stdout, stdin, stderr

process = Popen('python manage.py createsuperuser', shell=True, stdin=PIPE, stdout=PIPE ,stderr=stderr)

outs, errs = process.communicate(timeout=15)
print(outs) 

username="username"

process.stdin.write(username.encode('ascii'))

process.stdin.close

不幸的是,对于createsuperuser,您会收到此错误:

  

由于未在TTY中运行,因此跳过了超级用户创建。您可以在项目中运行manage.py createsuperuser来手动创建一个项目

对于安全问题,您不能使用tty创建超级用户。

我更喜欢:

您可以在项目中使用此代码创建超级用户

from django.contrib.auth.models import User; 
User.objects.create_superuser('admin', 'admin@example.com', 'pass')

如果您要使用Shell创建超级用户,建议您运行数据迁移stackoverflow.com/a/53555252/9533909