python - 无法输入“Profile_pic URL”
问题描述
我尝试在 postgres 中创建 db 后输入用户详细信息,但服务器不接受 Profile_pic URL,这个错误出现在我身上:(我尝试了几个图片 URL)
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
应用程序.py:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin, login_required
from flask_login import current_user
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'postgresql://postgres:jojo1437@localhost/flasksocial'
app.config['SECRET_KEY'] = 'super-secret'
app.config['SECURITY_REGISTERABLE'] = True
app.config['SECURITY_PASSWORD_HASH'] = 'bcrypt'
app.config['SECURITY_PASSWORD_SALT'] = '$2b$16$PnnIgfMwKOjGX4SKHqSOPO'
db = SQLAlchemy(app)
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
post_content = db.Column(db.String(200))
posted_by = db.Column(db.String(100))
def __init__(self, post_content, posted_by):
self.post_content = post_content
self.posted_by = posted_by
def __repr__(self):
return '<post %r>' % self.post_content
# https://pythonhosted.org/Flask-Security/quickstart.html
# Define models
roles_users = db.Table('roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))
class userDetails(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer)
user_name = db.Column(db.String(100))
profile_pic = db.Column(db.String(1000))
location = db.Column(db.String(100))
def __init__(self, user_id, user_name, profile_pic, location):
self.user_id = user_id
self.user_name = user_name
self.profile_pic = profile_pic
self.location = location
def __repr__(self):
return '<userDetails %r>' % self.user_name
class Role(db.Model, RoleMixin):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(80), unique=True)
description = db.Column(db.String(255))
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
active = db.Column(db.Boolean())
confirmed_at = db.Column(db.DateTime())
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
# Setup Flask-Security
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)
@app.route('/')
@login_required
def index():
return "welcom to the social app"
@app.route('/editprofile')
@login_required
def edit_profile():
now_user = User.query.filter_by(email=current_user.email).first()
return render_template('user_details.html', now_user=now_user)
@app.route('/add_user_detail',methods=['POST'])
def addUserDetails():
user_details = userDetails(request.form['pid'], request.form['user_name'], request.form['profile_pic'],
request.form['location'])
db.session.add(user_details)
db.session.commit()
return redirect(url_for('index'))
if __name__ == "__main__":
app.run(debug=True)
user_details.html:
<html>
<head>
</head>
<body>
<form method="post" action="addUserDetails">
<label>User Name: </label>
<input type="text" id="user_name" name="user_name">
<br>
<label>Profile pic: </label>
<input type="text" id="profile_pic" name="profile_pic">
<br>
<label>Location: </label>
<input type="text" id="location" name="location">
<br>
<input type="hidden" id="pid" name="pid" value="{{ now_user.id }}">
<input type="submit">
<br>
</form>
</body>
</html>
**请为 flask_SQLALchemy 中的大人物提供任何帮助
我尝试了很多图片网址,但我不知道问题出在哪里
解决方案
您的问题似乎出在您的 HTML 代码中。您指定addUserDetails
为操作,这是错误的。正确的方法应该是:
<form method="post" action="{{ url_for('addUserDetails') }}">
推荐阅读
- c++ - C++ 调试:VIsual Studio 中转储文件的堆内存状态
- serilog - 是否可以根据日志记录级别过滤掉 serilog 事件的属性
- excel - 基于段的 Excel 图表标题(无数据透视表)
- git - 我不小心点击了 vscode 中的初始化存储库。现在我不能回去
- r - Shiny 不显示表格
- c# - 冒泡排序问题 C#
- javascript - 如何处理地图函数中的多个参考
- python - 如何将 datetime 列中的 -99 值转换为我选择的日期?
- windows - 阻止从浏览器 Microsoft IIS 直接访问图像文件夹
- javascript - 在 Firebase 上出现错误 - FirebaseError: Invalid Segment (users//cart)。路径中不得包含 //