我在YouTube上的Tutorial的帮助下使用Flask创建了一个应用程序,但陷入错误
我在输入详细信息并提交后创建了一个包含某些字段的联系表,它显示为内部服务器错误,但我不知道如何解决此问题
我的程序代码在下面列出:
Python文件:(我正在Pycharm IDE中进行所有Python编码)
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/contacts'
db = SQLAlchemy(app)
class Contact(db.Model):
srno = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(80), nullable=False)
last_name = db.Column(db.String(80), nullable=True)
email = db.Column(db.String(20), nullable=False)
subject = db.Column(db.String(50), nullable=False)
msg = db.Column(db.String(150), nullable=False)
phone_num = db.Column(db.String(12), nullable=False)
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/contact', methods = ['GET', 'POST'])
def contact():
if request.method == 'POST':
firs = request.form.get('name')
emai = request.form.get('email')
subj = request.form.get('subject')
message = request.form.get('mesg')
phone = request.form.get('phone')
entry = Contact(first_name=firs, email=emai, subject=subj, msg=message, phone_num=phone)
db.session.add(entry)
db.session.commit()
return render_template('contact.html')
app.run()
我在网站上的联系表的HTML脚本是:
<span class="contact100-form-title">
Get in touch
</span>
<div class="wrap-input100 validate-input" data-validate = "Name is required">
<input class="input100" type="text" name="name" placeholder="Name">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-user" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Valid email is required: [email protected]">
<input class="input100" type="text" name="emai" placeholder="Email">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-envelope" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Phone is required">
<input class="input100" type="text" name="phone" placeholder="Phone Number">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-user" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Subject is required">
<input class="input100" type="text" name="subject" placeholder="Subject for Contact">
<span class="focus-input100"></span>
<span class="symbol-input100">
<i class="fa fa-user" aria-hidden="true"></i>
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Message is required">
<textarea class="input100" name="mesg" placeholder="Message"></textarea>
<span class="focus-input100"></span>
</div>
<div class="container-contact100-form-btn">
<button class="contact100-form-btn" type="submit">
Send
</button>
</div>
</form>
任何人都可以帮助我解决这个问题
首先出现的是,您没有在联系课程之后立即打电话给db.init_app(app)
称呼此人
更改您访问元素表单请求的方式。使用这个
name=request.form['name']
而且您似乎还没有导入烧瓶from flask import Flask