我写了一个Flask,它可以重复使用现有脚本中的代码(保持DRY)。
Flask应用程序运行良好,并按预期返回值。
但是,在运行独立的python脚本secretkeygenerator.py
时,我看不到命令行的任何输出。
python CLI脚本
#!/usr/bin/python3
import clipboard # import pyperclip
import random
def secretkeygenerator():
letters=['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm']
numbers=['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
symbols=['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '.', '<', '>', '?', '-', '=']
# The length of the string is 50
secret_key_list=random.sample(numbers, 10) + random.sample(numbers, 10) + \
random.sample(symbols, 10) + random.sample(symbols, 10) + random.sample(letters, 10)
random.shuffle(secret_key_list)
secret_key=''.join(secret_key_list)
with open('secretkey.txt', 'w') as secretkey:
secretkey.write('Your secret key, also copied to your clipboard is: {0}\n'.format(secret_key))
return secret_key
print('Your secret key, also copied to your clipboard is: {0}'.format(secret_key))
clipboard.copy(secret_key) # pyperclip.copy(secret_key)
secret_key_clip=clipboard.paste() # secret_key_clip=pyperclip.paste()
if __name__=='__main__':
secretkeygenerator()
Flask应用程序:
#!/usr/bin/python3
from flask import (
Flask,
render_template,
request,
)
from secretkeygenerator.secretkeygenerator import secretkeygenerator
app=Flask(__name__)
@app.route('/')
def index():
secret_key=secretkeygenerator()
return render_template('index.html', secret_key=secret_key)
if __name__=='__main__':
app.run(debug=True)
仅运行CLI脚本时,密钥不会打印到终端上。
我在做什么?
我希望在运行脚本secretkeygenerator.py
时将密钥打印到终端,尽管密钥已正确写入secret.txt
文件,但没有任何结果。
我的文件夹结构:
.
├── app
│ ├── app.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── app.cpython-35.pyc
│ │ ├── generatesecretkey.cpython-35.pyc
│ │ ├── __init__.cpython-35.pyc
│ │ └── secretkeygenerator.cpython-35.pyc
│ ├── secretkey.txt
│ ├── static
│ │ └── css
│ │ └── layoutimprovements.css
│ └── templates
│ └── index.html
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ └── secretkeygenerator.cpython-35.pyc
├── README.md
├── secretkeygenerator.py
└── secretkey.txt
答案 0 :(得分:0)
我将return
语句移到了主函数的底部。该脚本现在可以工作了。