【问题标题】:How would I go about creating a gui to run a django project?我将如何创建一个 gui 来运行 django 项目?
【发布时间】:2019-05-10 07:14:43
【问题描述】:

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

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

我不知道这是否是没有命令也能做到的事情,但如果是这样的话,那就太棒了987654325@、migrate 甚至可以随时更改默认主机和端口。

【问题讨论】:

    标签: django user-interface exe executable


    【解决方案1】:

    您可以使用此代码并更改您想要的每个命令,请注意,如果您运行此命令,您的 shell 必须在您的 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

    【讨论】:

    • 这仍然类似于subprocess.call(["python","manage.py", "runserver"]),据我了解,它或多或少是相同的事情。如果我想从 python 脚本中运行createsuperuser 命令,我不知道如何填写其余信息,因为它会在执行后等待输入。或者这种方法可以帮助解决这个问题吗?
    • 打算利用这些知识尝试工作。它给了我一些新的想法,但我想现在也许我可以像建议的那样手动创建超级用户。但至少我可以为其他没有这些问题的人使用它。谢谢你:)
    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 2015-06-14
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多