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.