老师,我用jsonify转换json问题没有解决,修改版本之后有了新的错误。
# 参数验证也叫参数解析 # Flask-Restful插件提供了类似WTForms来验证提交的数据是否合法的包,叫做reqparse from flask import Flask, jsonify from flask_restful import Api,Resource from flask_restful.reqparse import RequestParser app = Flask(__name__) api = Api(app) class RegisterView(Resource): def post(self): # 建立解析器 parser = RequestParser() # 定义数据的解析规则 parser.add_argument('uname',type=str,required=True,help='用户名验证错误',trim=True) # 解析数据 args = parser.parse_args() # 解析正确,返回正确参数 print(args) # 解析错误,返回错误信息给前端 data = {'msg':'注册成功!'} # 响应数据{'msg':'注册成功!'} # return {'msg':'注册成功!'} return jsonify(data) # 建立映射关系 api.add_resource(RegisterView,'/register/') if __name__ == '__main__': app.run(debug=True)
修改版本之后又报了新的错误
from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.declarative import declarative_base #数据库变量 HOST = '127.0.0.1' PORT = '3306' DATA_BASE = 'practice' USER = 'root' PWD = 'lls439918' DB_URI = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}' #创建引擎 engine = create_engine(DB_URI) #创建一个基类 Base = declarative_base(engine) class Person(Base): __tablename__='t_person' id = Column(Integer,primary_key=True,autoincrement=True) name = Column(String(32)) age = Column(Integer) country = Column(String(32)) #映射表结构 Base.metadata.create_all()
老师,这个报错是怎么回事TypeError: declarative_base() takes 0 positional arguments but 1 was given
后面uname=session('name')没影响那里没听懂,是说存储了session之后改变uname没影响吗
from flask import Flask,make_response,request app = Flask(__name__) @app.route('/') def index(): return 'Hello' @app.route('/set_cookie/') def set_cookie(): resp = make_response('设置了一个cookie') resp.set_cookie('uname','alisa') return resp @app.route('/get_cookie/') def get_cookie(): uname = request.cookies.get('uname') return f'cookie里的内容是:{uname}' if __name__ == "__main__": app.run(debug=True)
老师,为什么我最后{uname}打出来是None
这几节的文档练习题答案好像很多和讲的不一样
blueprint.zip
老师可以看看问题吗
TypeError: one of the hex, bytes, bytes_le, fields, or int arguments must be given
__call__
return self.wsgi_app(environ, start_response)
wsgi_app
response = self.handle_exception(e)
response = self.full_dispatch_request()
full_dispatch_request
rv = self.handle_user_exception(e)
rv = self.dispatch_request()
dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
register
if form.validate():
validate
return super().validate(extra)
if not field.validate(self, extra):
stop_validation = self._run_validation_chain(form, chain)
_run_validation_chain
validator(form, self)
uuid.UUID(field.data)
__init__
raise TypeError('one of the hex, bytes, bytes_le, fields, '
TypeError: one of the hex, bytes, bytes_le, fields, or int arguments must be given遇到这种报错 是什么意思
老师,这里为什么保存的日志文件不在此文件夹内,可以通过代码找到和读取,但是不知道在哪怎么办
自定义响应对象和上节课的元组有什么区别啊
这些文件能共享出来吗,这样有利于更好的实践
老师,我有个问题:user.login user = login这个关联有什么用?这是数据关联吗?是不是为了添加数据的时候 少些几行代码?还是一对一就是这个固定语法 多对多是append?
老师 sqlalchemy里面having使用也必须再分组的基础之上吗?
SharedScreenshot1.jpg
SharedScreenshot.jpg
老师,麻烦看看我的代码,我的代码到网页运行以后输入用户名和密码然后登录,会跳到初始状态,不显示登录成功,输入错误也会跳到初始状态。下面是源代码:
from flask import Flask,request,render_template from flask.views import MethodView app = Flask(__name__) # @app.route('/login/',methods=['GET','POST']) # def login(): # if request.method == 'GET': # return render_template('login05.html') # elif request.method == 'POST': # uname = request.form.get('uname') # pwd = request.form.get('pwd') # print(uname) # print(pwd) # if uname == 'zs' and pwd == '123': # return '登录成功' # else: # return render_template('login05.html') class LoginView(MethodView): def get(self): return render_template('login05.html') def post(self): uname = request.form.get['uname'] pwd = request.form.get['pwd'] print(uname) print(pwd) if uname == 'zs' and pwd == '123': return "登录成功!" else: return render_template('login05.html',msg='用户名或密码错误') app.add_url_rule('/login/',view_func=LoginView.as_view('login')) if __name__ == '__main__': app.run(debug=True) 下面是html05.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>登录页面</title> </head> <body> <h2>Login</h2> <form action="/login/" methods='POST'> <table> <tr> <td>用户名:</td> <td><input type="text" name="uname"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="pwd"></td> </tr> <tr> <td><input type="submit" value="登录"></td> </tr> </table> </form> <span style="color: red;">{{ msg }}</span> </body> </html>
我这里提示我传入了一个位置参数
老师 这里为什么不可以直接过滤呢?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637