Python脚本在HTML表面上打印结果

时间:2016-05-22 12:07:30

标签: python html web

我在Python中编写了一个非常简单的聊天机器人。 它就像你写的东西一样,它做基于Python的计算并给出答案。因为它也检查你以前的答案,python脚本需要连续运行。 我想把聊天机器人放在网上,并且:

  1. 将HTML表面的输入作为raw_input()
  2. 的源发送回服务器
  3. 然后将Python输出作为答案发送回前端,并作为HTML浏览器中聊天的换行符。
  4. 我的Python代码是:

    def conversation(question):
         answer = #... ... ...(doesnt matter right now)
    
         print "CHATBOT: " + answer
         next_question = raw_input("YOU: ")
         return next_question
    
    #==========================
    #INTRO & CALLING FUNTCTIONS
    #==========================
    print "Hi, my name is CHATBOT!"
    
    #Starts with user input.
    question = ""
    question = raw_input("You: ")
    
    #calling the conversation function
    question = conversation(question)
    

    问题是:如何将Python脚本与我的网站连接?用户如何在我的终端上与网站上的脚本进行交互?

    我很确定这很容易,但我不知道从哪里开始...... 谢谢!

2 个答案:

答案 0 :(得分:0)

你需要某种服务器。在您的情况下,您可以使用WebSockets或HTTP。

对于WebSockets,有像Autobahn这样的Python解决方案。 WebSocket记住状态,这对你想要做的事情有好处。这可能是你应该使用的。

对于HTTP,一个简单的Python解决方案是Bottle

from bottle import route, run, template
@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)

但HTTP是无状态,因此您不记得最后一次连接。您需要通过为每个用户创建Cookie /会话来记住特定用户的聊天方式。

此外,您仍然需要将其连接到像Nginx这样的Web服务器。

答案 1 :(得分:0)

漂亮的聊天机器人应用程序!诀窍是保持流量控制并将您的功能分开。

所以我做了两个小调整:

  1. 我从conversation获取了流控制,但在main

  2. 我将print中的conversation语句更改为return语句,因为如果可以的话,您希望保持打印到屏幕和逻辑功能:) / p>

  3. 除此之外,还有一个好的开始!w

    def conversation(question):
     answer = #... ... ...(doesnt matter right now)
     return "CHATBOT: " + answer
    
    def main():
        while True:
            next_question = raw_input("YOU: ")
            print(conversation(next_question))
    
    #==========================
    #INTRO & CALLING FUNTCTIONS
    #==========================
    
    print "Hi, my name is CHATBOT!"
    main()