我在localhost上开发了一个Flask应用程序(运行Python 3)。它可以工作,但是当转移到我的共享主机帐户(运行Python 2)时,它没有。我修复了与Python版本相关的所有问题。但<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="first text"
android:layout_margin="10dp"/>
无效。它的值在请求之间不会持续存在。
我尝试使用更简单的代码(class ARPSniffer:
def testTshark(self, iface):
print("Testing if tshark works. Using {}".format(iface))
cmd = "tshark -i " + iface
args = shlex.split(cmd)
tshark = subprocess.Popen(args, stdout=PIPE)
for line in io.TextIOWrapper(tshark.stdout, encoding="utf-8"):
print(line)
def run(self, iface):
try:
t = Thread(target=self.testTshark, args=(iface, ))
t.daemon = True
t.start()
t.join
except KeyboardInterrupt:
print("\nExiting ARP monitor...")
sys.exit(0)
if __name__ == '__main__':
iface = 'wlan1'
arps = ARPSniffer()
arps.run(iface)
)重新创建问题,注释掉的部分是我的应用程序中如何配置会话:
session
如果您转到test.py
,您会看到import sys
sys.path.insert(0, '/home/user_name/public_html')
from flask import Flask, request, session
from flask.ext.session import Session
from tempfile import mkdtemp
from cs50 import SQL
from constants import *
app = Flask(__name__)
#app.config["SESSION_TYPE"] = "filesystem"
#app.config["SESSION_PERMANENT"] = False
#app.config["SESSION_FILE_DIR"] = mkdtemp()
Session(app)
@app.route('/set/')
def set():
session['key'] = 'value'
return 'ok'
@app.route('/get/')
def get():
return "{}".format(session.get('key'))
。但在/set/
上,您会看到ok
。
这是我的CGI文件(我只需要共享主机,而不是localhost):
/get/
如果需要None
个文件:
#!/home/user_name/public_html/cgi-bin/flask/bin/python
import sys
sys.path.insert(0, '/home/user_name/public_html')
# Enable CGI error reporting
import cgitb
cgitb.enable()
import os
from wsgiref.handlers import CGIHandler
app = None
try:
import test
app = test.app
except Exception, e:
print "Content-type: text/html"
print
cgitb.handler()
exit()
#os.environ['SERVER_PORT'] = '80'
#os.environ['REQUEST_METHOD'] = 'POST'
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['SCRIPT_NAME'] = ''
return self.app(environ, start_response)
app = ScriptNameStripper(app)
try:
CGIHandler().run(app)
except Exception, e:
print "Content-type: text/html"
print
cgitb.handler()
exit()
谷歌搜索没有帮助,Stackoverflow上的其他类似问题无法修复它。欢迎任何解决方案/帮助。谢谢!
答案 0 :(得分:0)
我仍然不确定是否正在编写session
(正如@Danila Ganchar所指出的那样),但只是评论出第3条配置行解决了这个问题。
因此test.py
所做的更改是:
app.config["SESSION_TYPE"] = "filesystem"
app.config["SESSION_PERMANENT"] = False
#app.config["SESSION_FILE_DIR"] = mkdtemp()
我猜mkdtemp()
无效,就像在localhost上一样。