html的body内标签之input系列1

1. Form的作用:提交当前的表单. 类似于去了银行提交的纸质单子,递到后台去办理相关业务。

    text,password只有输入的功能;button,submit只有点击的功能。想要把这些信息提交,需要用Form  

   button毛线用也没有(以后学JS的时候可以赋予一定的功能),submit才有真正提交的功能。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <input type="text"/>
        <input type="password"/>
        <input type="button" value="登录1"/>
        <input type="submit" value="登录2"/>
    </form>
</body>
</html>

 2. Action 指的是把下面的内容提交到哪里,提交到哪个URL。method:提交方法。(有GET, POST两种方法,默认是以GET方法提交给后台的)

往后台(服务器端)提交的时候,必须加上name属性。告诉后台提交的数据是什么信息。提交的时候,会把信息打包成字典。{user: 用户输入的用户名;email:用户输入的邮箱}

通过localhost:8888/index 可以访问到服务器端。因为服务器端监听的是8888端口。

现在把http://localhost:8888/index加到了action里面,指定了方法为get。 所以程序一运行的时候,就执行GET方法,把数据提交到了服务器端。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="http://localhost:8888/index" method="GET">
        <input type="text" name="user"/>
        <input type="text" name="email"/>
        <input type="password" name="pwd"/>
        <!--{'user':用户输入的用户名,'email':'xx','pwd':'xx'}-->
        <input type="button" value="登录1"/>
        <input type="submit" value="登录2"/>
    </form>
</body>
</html>

 3.如果以GET方式提交的话,会把用户的输入都拼接到URL后面,然后再提交。默认都是以GET方式向后台提交数据的。

如果用POST方法,则不会拼接,会把你提交的内容放到数据里面提交上去。

两者只是体现形式不一样,安全程度是一样的,抓包的时候都能抓到。没有安全不安全一说。

self.write()返回到页面上。

4. 用不同的方法访问URL的时候,会执行不同的函数。只要客户端有请求,APP服务器端就会有数据返回。

   APP程序如下:因为没有安装 tornado,所以这段没有测试。

import tornado.ioloop
import tornado.web


# pip3 install tornado

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        print(111)
        u = self.get_argument('user')
        e = self.get_argument('email')
        p = self.get_argument('pwd')
        if u == 'alex' and p == '123' and e == 'alex@126.com':
            self.write("OK")
        else:
            self.write("滚")

    def post(self, *args, **kwargs):
        u = self.get_argument('user', None)
        e = self.get_argument('email', None)
        p = self.get_argument('pwd', None)
        print(u, e, p)
        self.write('POST')


application = tornado.web.Application([
    (r"/index", MainHandler), #如果你访问的是index这个URL,它就会执行MainHandler类里面的不同方法
])
if __name__ == "__main__":
    application.listen(8888) #在内部会监听8888端口,用户访问的时候,我可以返回self.write()里面的内容。
    tornado.ioloop.IOLoop.instance().start()

5. 在表单里的name和value有什么区别啊?

name可以理解为名称,用于区别表单项 value是表单项的值. 如果有些效果需要JS调用的话,那么他寻找的正是name。

原文地址:https://www.cnblogs.com/momo8238/p/7398077.html