我有一个在Python 2虚拟环境中运行的Flask应用程序.
我正在寻找运行Python 3程序,所以我需要将python3安装到虚拟环境中.我该怎么做呢?我是否必须重建环境?这是一次艰难的迁移吗?
我发现了很多与此类似的内容,但我只是无法让它发挥作用。基本上,我有一个按钮,按下它后,我想将该值发送回我的烧瓶后端。
HTML 按钮:
<form action="" method="POST" ><button class="btn btn-danger" type="submit" name="delete" value="{{ item2 }}"><span class="glyphicon glyphicon-trash"></span> Delete</button> </form>
Run Code Online (Sandbox Code Playgroud)
Python:
@app.route('/', methods=["GET","POST"])
def home():
if request.method == 'POST':
if request.form['delete'] == post_id:
(my sql login/cursor stuff....)
sql = "DELETE FROM test_table WHERE post_id = ?"
c.execute(sql, (post_id,))
return redirect("/")
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用 jinja 填充链接(以及后续变量)。它按应有的方式填充了按钮,但将其发送回我的 python 脚本不起作用。
更新: 当我运行此命令时,出现内部服务器错误。我看不到路由错误是什么,因为我无法让调试工作(使用 wsgi/werkzeug)。
我认为我们可以得出结论说,不定义post id就是它不起作用的原因。所以我的问题是,当按钮将数据发送回 python 时,python 会获取什么值(以及如何获取)?是它name=还是value=别的什么?
我想在内存中动态创建一个函数,并带有参数的类型提示。我确实有一些工作代码,但感觉非常老套和脆弱。
import typing
func_name = 'some_function_name'
req_type=int
a = None
exec(f'''def {func_name}(my_argument:{req_type.__name__}): pass
a = {func_name}''')
print(a) # <function some_function_name at 0x000001B89F3311F0>
print(typing.get_type_hints(a)) # {'my_argument': <class 'int'>}
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法来做到这一点。有什么建议么?
我有一个对象数组,其中每个对象都传递到一个子组件中。该对象的值之一是作为字符串文字的文本 blob。该 blob 包含 HTML 链接。我想在子组件中保留此链接。它看起来是这样的......
`This is my text literal with a ${<a href="http://link.com">Link</a>}.`
Run Code Online (Sandbox Code Playgroud)
我还尝试像这样动态创建一个反应对象:
`This is my text literal with a ${React.createElement('a', { href: 'https://link.com' }, 'Link')}.`
Run Code Online (Sandbox Code Playgroud)
这两者都呈现如下:
这是我的带有 [object Object] 的文本文字。
我如何让它显示链接?
python ×3
flask ×2
ecmascript-6 ×1
html ×1
javascript ×1
python-2.7 ×1
python-3.x ×1
reactjs ×1
virtualenv ×1