美文网首页
python-flask笔记(四)

python-flask笔记(四)

作者: f1a94e9a1ea7 | 来源:发表于2018-07-27 20:14 被阅读24次
  • 如何获取get请求的参数
from flask import request
  • 修改视图函数
@app.route('/')
def hello_world():
    if 'name' in request.args:
        name = request.args['name']
        return render_template('user.html', username=name )
    else:
        return render_template('index.html')

再试试post请求

  • 在index.html用jQuery发送一个post请求
    • jquery文件目录:static/js/jquery.js
    • static 放在和templates文件同级
    • index.html里引入:
<script src="{{url_for('static', filename='js/jquery.js')}}"></script>
  • index.html:
<button type="button">点击获取username</button>


<script src="{{url_for('static', filename='js/jquery.js')}}"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('button').click(function() {
            console.log('aaaaaaaaa')
            $.ajax({
                url: 'http://127.0.0.1:7777/register',
                type: 'POST',
                data: {
                    name:'baozi'
                },
                success: function(res) {
                    console.log(res)
                    console.log('successed')
                }
            })
        })
    })
}
@app.route('/register', methods=['POST'])
def register():
    return request.form['name']
  • 打开浏览器输入http://127.0.0.1:7777,现在看到的是index.html,里面有个按钮,点击按钮之后F12打开调试台,第一行是 aaaaa表示点击事件触发成功,第二行是 baozi,第三行是successed
  • 第二行就是我们服务器返回的数据,我们首先将参数name传到服务器,服务器用request.form['name']获取,(注意post请求是用request.form,get请求是用request.args获取前端传来的数据)然后返回给了前端,作为参数在前端请求成功后的函数里,这样就获取到了后台传来的数据。

现在在index.html文件添加输入框,获取到用户输入的值传给后台,后台再返回某些数据给前端:

  • index.html:
##引入css
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/index.css')}}">

##删掉其他元素,改成下面的:
<form>
        <label for="username">用户名:</label>
        <input type="text" name="username" id="username" />
        <br />
        <label for="passwor">密码:</label>
        <input type="password" name="password" id="password" />
        <br />
        <button type="button">提交</button>
    </form>

## js:
$(document).ready(function() {
        
        $('button').click(function() {
            ##获取input的值
            let username = $('#username').val()
            console.log(username)
            let password = $('#password').val()
            console.log(password)
            
            $.ajax({
                url: 'http://127.0.0.1:7113/register',
                type: 'POST',
                data: {
                    username: username,
                    password: password
                },
                success: function(res) {
                    console.log(res)
                }
            })
        })
    })
  • blog.py
@app.route('/register', methods=['POST'])
def register():
    username = request.form['username']
    password = request.form['password']
    
    return '我知道你的密码是 %s 啦 ' % password
  • 现在访问http://127.0.0.1:7113/ 会有两个输入框,在里面输入用户名和密码,然后点击按钮,打开调试台,可以看到打印出了 我知道你的密码是 *** 拉 *号内容为你刚刚输入的密码

  • 至此,前后台就算是初步完成交互了,下一步就是后台连接数据库

  • 全部代码:

  • index.html

 <form>
        <div class="form-control">
            <label for="username">用户名:</label>
            <input type="text" name="username" id="username" />
        </div>
        <div class="form-control">
            <label for="passwor">密码:</label>
            <input type="password" name="password" id="password" />
        </div>
        <button type="button">提交</button>
    </form>


    <script src="{{url_for('static', filename='js/jquery.js')}}"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        console.log('aaaaaaa')
        
        $('button').click(function() {

            let username = $('#username').val()
            console.log(username)
            let password = $('#password').val()
            console.log(password)
            
            $.ajax({
                url: 'http://127.0.0.1:7113/register',
                type: 'POST',
                data: {
                    username: username,
                    password: password
                },
                success: function(res) {
                    console.log(res)
                }
            })
        })
    })

    </script>

  • blog.py
from flask import Flask
from flask import render_template
from flask_script import Manager
from flask import url_for
from flask import request

app = Flask(__name__)
manager = Manager(app)


@app.route('/')
def hello_world():
    if 'name' in request.args:
        name = request.args['name']
        return render_template('user.html', username=name)
    else:
        return render_template('index.html')


@app.route('/register', methods=['POST'])
def register():
##这里是python打印方法,但是不知道是从哪里输出来,运行服务器后看不到这些输出信息,以后再解决,这里输出的是一些请求的信息
    # print (request.headers)
    # print (request.form)
    # print (request.form['name'])
    # print (request.form.get('name'))

    username = request.form['username']
    password = request.form['password']
    
    return '我知道你的密码是 %s 啦 ' % password



@app.route('/<username>')
def user(username):
    return render_template('user.html', username=username)

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

@app.errorhandler(500)
def internal_server_error():
    return render_template('500.html'), 500



if __name__ == '__main__':
    app.run(port=7113, debug=True)

``

相关文章

  • python-flask笔记(四)

    如何获取get请求的参数 修改视图函数 现在在浏览器输入http://127.0.0.1:7777/会看到hell...

  • Python学习

    python-flask框架学习(四) flask 模板文件操作 1、控制操作 用 {%%} 定义的控制代码块,可...

  • python-flask笔记(二·)

    Flask主要有两个依赖: 路由,Web服务器网关接口子系统(由Werkzeug提供) 模板系统(由Jinja2提...

  • python-flask笔记(三)

    教程用的是bootstrap的模板,这里就用纯html和css自己写了 - 更改前面写的路由,‘/’根路由返回in...

  • python-flask笔记(一)

    python 虚拟环境(windows): 命令行下安装:pip install virtualenvpip in...

  • python-flask笔记(五)

    用到的数据库是sqlite,这个数据库不需要安装(因为这个数据库的运行是基于文件系统的),只要你电脑能运行C语言就...

  • python-flask笔记(六)

    此章和教程出入不大,可直接看原教程 之前写的代码耦合太重,python也可以像js模块化一样模块化程序结构 模块化...

  • 解决Flask错误“TypeError: 'bool' obje

    标签: Python Flask 【参考链接】python-flask 教程学习过程遇到难题TypeError: ...

  • python-flask学习笔记1

    python的特点:简单;面向对象;脚本语言;可拓展性;丰富的标准库;活跃的开源社区;应用领域:web;爬虫;科学...

  • Swagger 关于 AttributeError: no 'G

    SwaggerEditor 2.0 生成 python-flask 服务器端代码中使用 python 3.7 版本...

网友评论

      本文标题:python-flask笔记(四)

      本文链接:https://www.haomeiwen.com/subject/fjhwmftx.html