· 7 years ago · Aug 27, 2018, 01:12 AM
1#!/usr/bin/python
2import sys, os
3from random import choice
4import string
5
6seq = string.ascii_letters + string.digits + string.punctuation
7
8MAIN_FILE = """import flask
9from settings import *
10app = flask.Flask(__name__)
11app.secret_key = SECRET_KEY
12
13if __name__ == "__main__":
14 if DEBUG == True:
15 app.run(debug=True, host="")
16 else:
17 from gevent.wsgi import WSGIServer
18 http_server = WSGIServer(("127.0.0.1", DEPLOY_PORT), app)
19 http_server.serve_forever()
20"""
21
22SETTINGS_FILE = """DEBUG = True
23DEPLOY_PORT = %d
24SECRET_KEY = "%s\""""
25
26if __name__ == "__main__":
27 if len(sys.argv) == 1:
28 print """Usage ./genflasksite.py <name> <deployment_port>
29
30 name - the name of the site, of which the directory will be
31 under the current directory. Also the name of the main script.
32 deployment_port - The port of the gevent deployment server."""
33 else:
34 sitename = sys.argv[1]
35 os.mkdir(sitename)
36 mainF = open(os.path.join(sitename, sitename+".py"), "w")
37 mainF.write(MAIN_FILE)
38 mainF.close()
39 if len(sys.argv) <= 2:
40 port = 8000
41 else:
42 port = int(sys.argv[2])
43
44 settingsF = open(os.path.join(sitename, "settings.py"), "w")
45 key = ""
46 for i in xrange(20):
47 key += choice(seq)
48 settingsF.write(SETTINGS_FILE % (port, key))
49 settingsF.close()
50 os.mkdir(os.path.join(sitename, "static"))
51 os.mkdir(os.path.join(sitename, "templates"))