【问题标题】:Python - Flask SQLAlchemy App not running - "This site can’t be reached"Python - Flask SQLAlchemy 应用程序未运行 - “无法访问此站点”
【发布时间】:2018-12-06 22:29:48
【问题描述】:

所以我在努力学习,SQLAlchemey。 我从教程https://www.tutorialspoint.com/flask/flask_sqlalchemy.htm复制代码

它有一个缩进错误,所以我修复了它。此外,我添加了run(use_reloader=False),因为它没有加载。但现在它显示:

    This site can’t be reached The webpage at http://127.0.0.1:6000/ might be temporarily down or it may have moved permanently to a new web address.
ERR_UNSAFE_PORT

在浏览器中。

完整的代码是

from flask import Flask, request, flash, url_for, redirect, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.sqlite3'
app.config['SECRET_KEY'] = "random string"

db = SQLAlchemy(app)

class students(db.Model):
   id = db.Column('student_id', db.Integer, primary_key = True)
   name = db.Column(db.String(100))
   city = db.Column(db.String(50))
   addr = db.Column(db.String(200)) 
   pin = db.Column(db.String(10))

   def __init__(self, name, city, addr,pin):
       self.name = name
       self.city = city
       self.addr = addr
       self.pin = pin

@app.route('/')
def show_all():
   return render_template('show_all.html', students = students.query.all() )

@app.route('/new', methods = ['GET', 'POST'])
def new():
   if request.method == 'POST':
      if not request.form['name'] or not request.form['city'] or not request.form['addr']:
         flash('Please enter all the fields', 'error')
      else:
         student = students(request.form['name'], request.form['city'],
            request.form['addr'], request.form['pin'])

         db.session.add(student)
         db.session.commit()
         flash('Record was successfully added')
         return redirect(url_for('show_all'))
   return render_template('new.html')

if __name__ == '__main__':
   db.create_all()
   app.run(port=6000, use_reloader=False, debug = True)

【问题讨论】:

  • @BilalAliJafri:不建议使用 0.0.0.0 而不解释安全隐患!他们正在连接到默认主机 localhost,并且他们的 Flask 服务器不需要对其网络的其余部分可见。
  • @BilalAliJafri:如果有人在公共网络上这样做,他们就会面临可能的安全问题,包括他们的机器被黑客入侵。 Werkzeug WSGI 服务器不是久经沙场的,在调试模式下运行时,有可能绕过简单的 PIN 保护并允许在您的机器上执行任意 Pythno 代码。
  • 因此我删除了您的评论。请不要要求人们再次对此类风险敞开心扉。运行 Flask 开发服务器时,请将其保留在本地。
  • 带@MartijnPieters 注释,使用wsgiref 而不是flask 等。在没有学习WSGI 应用程序的情况下,请勿使用flask 或dijango 等任何应用程序。
  • @dsgdfg:app.run() 的全部意义在于为您提供本地服务器进行开发。 没关系。除了他们自己的机器之外,他们不会尝试从其他任何地方访问它。

标签: python flask sqlalchemy flask-sqlalchemy


【解决方案1】:

尝试访问http://localhost:5000/,因为这是默认端口烧瓶打开

【讨论】:

  • app.run(port=6000, ...) 设置端口,不再在默认端口上运行。
猜你喜欢
  • 2018-03-31
  • 2020-05-31
  • 2019-12-15
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多