from flask import Flask, render_template, request, redirect, url_for, flash
from flask_sqlalchemy import SQLAlchemy
from user import db, Hasta # user.py'den ilgili sınıfları ve veritabanını içe aktarın
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
app.config['SECRET_KEY'] = 'your_secret_key_here'
db.init_app(app)
@app.route('/')
def index():
return render_template("index.html")
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
# Burada Hasta sınıfını kullanabiliriz
hasta = Hasta.query.filter_by(hasta_username=username, hasta_password=password).first()
if hasta:
flash('Giriş başarılı', 'success')
return redirect(url_for('hello'))
else:
flash('Kullanıcı adı veya şifre hatalı!', 'error')
return redirect(url_for('index'))
@app.route('/hello')
def hello():
return 'Hello, world!'
if __name__ == "__main__":
app.run(debug=True)
Hasta =病人此代码位于app.py文件中
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship
from datetime import datetime
from app import db # Flask uygulamasını içe aktarın
class Admin(db.Model):
admin_id = db.Column(db.Integer, primary_key=True)
admin_username = db.Column(db.String(50), unique=True, nullable=False)
admin_password = db.Column(db.String(100), unique=True, nullable=False)
def __init__(self, admin_username, admin_password):
self.admin_username = admin_username
self.admin_password = admin_password
class Hasta(db.Model):
hasta_id = db.Column(db.Integer, primary_key=True)
hasta_username = db.Column(db.String(50), unique=True, nullable=False)
hasta_password = db.Column(db.String(100), unique=True, nullable=False)
hasta_name = db.Column(db.String(25), nullable=False)
hasta_surname = db.Column(db.String(25), nullable=False)
hasta_gender = db.Column(db.String(1), nullable=False)
hasta_birth = db.Column(db.DateTime, nullable=False)
hasta_tel = db.Column(db.String(16), nullable=False)
hasta_adres = db.Column(db.String(100), nullable=False)
hast_admID = db.Column(db.Integer, db.ForeignKey('admin.admin_id'))
admin = relationship("Admin")
class Doktor(db.Model):
doktor_id = db.Column(db.Integer, primary_key=True)
doktor_username = db.Column(db.String(50), unique=True, nullable=False)
doktor_password = db.Column(db.String(100), unique=True, nullable=False)
doktor_name = db.Column(db.String(25), nullable=False)
doktor_surname = db.Column(db.String(25), nullable=False)
dok_admID = db.Column(db.Integer, db.ForeignKey('admin.admin_id'))
admin = relationship("Admin")
dok_hastaID = db.Column(db.Integer, db.ForeignKey('hasta.hasta_id'))
hasta = relationship("Hasta")
class Randevu(db.Model):
randevu_id = db.Column(db.Integer, primary_key=True)
randevu_tar = db.Column(db.DateTime, nullable=False)
randevu_saat = db.Column(db.Time, nullable=False)
ran_HastID = db.Column(db.Integer, db.ForeignKey('hasta.hasta_id'))
hasta = relationship("Hasta")
ran_DokID = db.Column(db.Integer, db.ForeignKey('doktor.doktor_id'))
doktor = relationship("Doktor")
class Rapor(db.Model):
rapor_id = db.Column(db.Integer, primary_key=True)
rapor_tar = db.Column(db.DateTime, nullable=False)
rapor_Icer = db.Column(db.String(120), nullable=False)
rap_hasID = db.Column(db.Integer, db.ForeignKey('hasta.hasta_id'))
hasta = relationship("Hasta")
rap_dokID = db.Column(db.Integer, db.ForeignKey('doktor.doktor_id'))
doktor = relationship("Doktor")
rap_admID = db.Column(db.Integer, db.ForeignKey('admin.admin_id'))
admin = relationship("Admin")
# Uygulama bağlamı içinde veri eklemeyi deneyin
with db.app.app_context():
# Tablolara veri ekleniyor
admin1 = Admin(admin_username='ibardo', admin_password='yalova77')
db.session.add(admin1)
hasta1 = Hasta(hasta_username='gonul', hasta_password='malatya44', hasta_name='Gonul', hasta_surname='Dogan', hasta_gender='K', hasta_birth=datetime(1970, 11, 3), hasta_tel='5356741243', hasta_adres='ZaferMah. Malatya', admin=admin1)
hasta2 = Hasta(hasta_username='mustafa', hasta_password='yalova77', hasta_name='Mustafa', hasta_surname='Dogan', hasta_gender='E', hasta_birth=datetime(1968, 1, 4), hasta_tel='5325468264', hasta_adres='GocmenMah. Yalova', admin=admin1)
hasta3 = Hasta(hasta_username='rauf', hasta_password='eskisehir26', hasta_name='Rauf', hasta_surname='Dogan', hasta_gender='E', hasta_birth=datetime(1990, 3, 1), hasta_tel='5359856242', hasta_adres='Tepabasi Eskisehir', admin=admin1)
db.session.add(hasta1, hasta2, hasta3)
doktor1 = Doktor(doktor_username='pam', doktor_password='scranton', doktor_name='Pam', doktor_surname='Beesly', admin=admin1, hasta=hasta1)
doktor2 = Doktor(doktor_username='jim', doktor_password='usajim', doktor_name='Jim', doktor_surname='Halpert', admin=admin1, hasta=hasta2)
doktor3 = Doktor(doktor_username='mike', doktor_password='engmik', doktor_name='Mike', doktor_surname='Scott', admin=admin1, hasta=hasta3)
db.session.add(doktor1, doktor2, doktor3)
randevu1 = Randevu(randevu_tar=datetime(2024, 9, 8), randevu_saat=datetime(13, 0), hasta=hasta1, doktor=doktor1)
randevu2 = Randevu(randevu_tar=datetime(2025, 4, 2), randevu_saat=datetime(12, 0), hasta=hasta2, doktor=doktor2)
randevu3 = Randevu(randevu_tar=datetime(2024, 7, 1), randevu_saat=datetime(16, 0), hasta=hasta3, doktor=doktor3)
db.session.add(randevu1, randevu2, randevu3)
rapor1 = Rapor(rapor_tar=datetime(2024, 7, 3), rapor_Icer='None', hasta=hasta1, doktor=doktor1, admin=admin1)
rapor2 = Rapor(rapor_tar=datetime(2024, 5, 2), rapor_Icer='None', hasta=hasta2, doktor=doktor2, admin=admin1)
rapor3 = Rapor(rapor_tar=datetime(2024, 9, 1), rapor_Icer='None', hasta=hasta3, doktor=doktor3, admin=admin1)
db.session.add(rapor1, rapor2, rapor3)
db.session.commit()
user.py 文件中的代码
当我运行此代码时,出现以下错误:File "c:\Python pp.py", line 3, in from user import db, Hasta # user.py'den ilgili sınıfları ve veritabanını içe aktarın ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“c:\Python\user.py”,第 6 行,位于 from app import app # Flask 使用它 ^^^^^^^^^^^^^^^^^^^^ 文件“c:\Python pp.py”,第 3 行,位于 from user import db, Hasta # user.py'den ilgili sınıfları ve veritabanını içe aktarın ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ImportError:无法从部分初始化的模块“user”导入名称“db”(很可能是由于循环导入)(c:\ Python \ user.py) PS C:\Python>
即使我的 user.py 和 app.py 文件位于同一目录中,我也会收到错误。我尝试了各种方法但找不到它。你能帮助我吗。另外,虽然我研究了这个错误,但我做不到。
您的应用程序中应该有一个数据包结构,可以通过 init.py 文件来完成。 Corey Schafer 有一个关于这个主题的很棒的 youtube 教程。我强烈建议您按照这些步骤将应用程序结构转换为数据包结构