{"id":18695933,"url":"https://github.com/rahulmoundekar/flask_sqlalchemy_one_to_one_relationship_example","last_synced_at":"2026-04-17T05:02:29.096Z","repository":{"id":90410975,"uuid":"257183504","full_name":"rahulmoundekar/flask_sqlalchemy_one_to_one_relationship_example","owner":"rahulmoundekar","description":"flask_sqlalchemy_one_to_one_relationship_example","archived":false,"fork":false,"pushed_at":"2020-04-24T06:56:24.000Z","size":7,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-05T00:37:54.178Z","etag":null,"topics":["bootstrap-template","flask","flask-sqlalchemy","html5","mysql","python-3"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rahulmoundekar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-20T05:46:06.000Z","updated_at":"2024-03-02T21:08:36.000Z","dependencies_parsed_at":"2023-04-06T08:06:41.023Z","dependency_job_id":null,"html_url":"https://github.com/rahulmoundekar/flask_sqlalchemy_one_to_one_relationship_example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rahulmoundekar/flask_sqlalchemy_one_to_one_relationship_example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rahulmoundekar","download_url":"https://codeload.github.com/rahulmoundekar/flask_sqlalchemy_one_to_one_relationship_example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap-template","flask","flask-sqlalchemy","html5","mysql","python-3"],"created_at":"2024-11-07T11:16:39.893Z","updated_at":"2026-04-17T05:02:29.068Z","avatar_url":"https://github.com/rahulmoundekar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flask CURD SqlAlchemy one to one relationship example :\n\n#### Project Setup\n\n  - Making the project as :\n     ```\n        mkdir flask_sqlalchemy_one_to_one_relationship_example\n\t\tcd flask_sqlalchemy_one_to_one_relationship_example\n    ```\n  - Install flask:\n    ```\n        pip install flask\n    ```\n - Integrating SqlAlchemy\n    ```\n      pip install sqlalchemy\n    ```\n - Create EmployeeManagementSystem.py for development    \n  - Declaring Models:\n     ```\n    class Person(db.Model):\n    id = db.Column(db.Integer, primary_key=True)\n    name = db.Column(db.String(80), nullable=False)\n    mobile = db.Column(db.String(12), nullable=False)\n    license = db.relationship('License', backref=db.backref('person', uselist=False), cascade='all, delete-orphan',\n                              lazy=True,\n                              uselist=False)  # delete parent record in one to many relationship in flask cascade='all, delete-orphan'\n\n    def __repr__(self):\n        return f'Person: {self.id}, {self.name}, {self.mobile}'\n\n\n    class License(db.Model):\n        id = db.Column(db.Integer, primary_key=True)\n        license_number = db.Column(db.String(80), nullable=False)\n        issue_date = db.Column(db.DateTime, nullable=False)\n        expiry_date = db.Column(db.DateTime, nullable=False)\n        person_id = db.Column(db.Integer, db.ForeignKey('person.id'), unique=True, nullable=False)\n    \n        def __repr__(self):\n            return f'License: {self.id}, {self.license_number}, {self.issue_date}, {self.expiry_date}'\n\n    ```\n - create settings.py for configuration\n     ```\n     # configuration\n    class Config:\n        DEBUG = True\n        # db\n        SQLALCHEMY_DATABASE_URI = 'mysql://root:root@localhost/djangoapp'\n        SQLALCHEMY_TRACK_MODIFICATIONS = False\n    ```\n    \n - Make a runserver configuration\n     ``` \n    app = Flask(__name__)\n    app.config.from_object('settings.Config')\n    db = SQLAlchemy(app)\n    \n    if __name__ == \"__main__\":\n        app.run(debug=True)\n    ```\n - create html file inside templates folder\n    * check project directory for index.html file\n    \n - create curd def in EmployeeManagementSystem.py\n    ``` \n      @app.route(\"/\", methods=['GET', 'POST'])\n         @app.route(\"/\u003cint:person_id\u003e\", methods=['GET'])\n        def PersonHome(person_id=None):\n            if request.method == 'POST':\n                # person data\n                pid = request.form.get('id')\n                name = request.form.get('name')\n                mobile = request.form.get('mobile')\n                # license data\n                license_number = request.form.get('license_number')\n                issue_date = request.form.get('issue_date')\n                expiry_date = request.form.get('expiry_date')\n        \n                if pid:  # if id present update records\n                    person = Person.query.filter_by(id=pid).first()\n                    person.name = name\n                    person.mobile = mobile\n        \n                    person.license.license_number = license_number\n                    person.license.issue_date = issue_date\n                person.license.expiry_date = expiry_date\n    \n                db.session.commit()\n            else:\n                # id not None save record\n                try:\n                    person_entry = Person(name=name, mobile=mobile)\n                    license_entry = License(license_number=license_number, issue_date=issue_date, expiry_date=expiry_date)\n                    person_entry.license = license_entry\n                    db.session.add(person_entry)\n                    db.session.commit()\n                except IntegrityError as e:\n                    print(e, 'Something went wrong please try again later')\n        person = None\n        licenses = None\n        if person_id:  # load record form edit form data\n            person = Person.query.filter_by(id=person_id).first()\n            licenses = License.query.filter_by(person_id=person_id).first()\n        persons = Person.query.all()\n    \n        return render_template('index.html', persons=persons, person=person, license=licenses)\n\n\n    @app.route(\"/delete/\u003cint:person_id\u003e\", methods=['GET'])\n    def deletePerson(person_id):\n        try:\n            person = Person.query.filter_by(id=person_id).first()\n            print(person)\n            if person:\n                db.session.delete(person)\n                db.session.commit()\n            else:\n                print('Could not find any note to delete')\n        except IntegrityError as e:\n            print(e, 'Something went wrong please try again later')\n        return redirect(\"/\")\n\n      ``` \n - In order to run app:\n      ```\n\tpython PersonLicenseManagement.py\n      ```\n\n - run on your browser\n    * Your should run at: http://127.0.0.1:5000/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahulmoundekar%2Fflask_sqlalchemy_one_to_one_relationship_example/lists"}