Inforian
Inforian

Reputation: 1736

Create folders in flask

I want to create folders using flask . I Google for this a lot but didn't find any help. Evey search shows me the folder structure of flask but I want to know how can I create folders using code.

Actually I want to create folders for every user at register time.So suggest me a way how can I create a simple empty folder at particular path in flask.

Upvotes: 4

Views: 10472

Answers (3)

Dindoucha
Dindoucha

Reputation: 26

from flask import Flask, request
import os

app = Flask(__name__)
app.config["TEMPLATES_AUTO_RELOAD"] = True
app.config['UPLOAD_FOLDER'] = 'static/users/'

@app.route('/register', methods=["POST", "GET"])
def register():
    username = request.form.get("username")
    if request.method == "POST":
        username = username.strip().capitalize()
        user_folder = os.path.join(app.config['UPLOAD_FOLDER'], username)
        os.mkdir(user_folder)
        return f"folder is created under the name {username} and the full path is {user_folder}"
    return """
    <form method="post" action="/register">
    <input type="text" name="username" required>
    <button type="submit" >Submit</button>
    </form>
    """

Upvotes: 0

Abhinay Yadav
Abhinay Yadav

Reputation: 29

create folders for every user at register time. You can override the default constructor of sqlalchemy orm like this and do custom stuff inside the function. Here is semi working code.

from app import db
import os

class User(db.Model):
    # ...
    
    folder = db.Column(db.String(80), unique=True, nullable=False)
    
    
    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)
        # do custom stuff call folder create method here
        
        self.create_folder()
        
    
    
    # method to create folder
    def create_folder(self):
          
          #give path to location where you want to create folder
          path = "my path where i want to create folder"
          os.mkdir(path)
          
         
          #update some property in User database
          
          self.folder = "path to my user folder"
          
          

Upvotes: 3

falsetru
falsetru

Reputation: 369334

Use os.mkdir or os.makedirs according to your need.

import os

os.makedirs('/path/to/directory')

Upvotes: 6

Related Questions