Home > Net >  How to develop in production and development mode of Flask website
How to develop in production and development mode of Flask website

Time:07-12

This is not a pure technical issue but more methodologic question. I've seen Q&A regarding configuration for DEBUG and PRODUCTION ENVs but my question is concerning other issue.

When I started working on the project on my local machine I edited the hosts file to redirect www.example.com (I used the same URL for my live website) to 127.0.0.1 as I used to and it's working great.

Now when www.example.com is live, I wanted to know what is the right configuration for keep developing the website?

The only idea I came up with is to use www.example.org (So I won't lose actual access to www.example.com) in my hosts file and on the code to use IF DEBUG to redirect traffic to example.org instead of example.com but I feel there are better options.

I also would love some tips about the right way of working with git to post local updates to the live server.

CodePudding user response:

When I want to access the website I'm running locally I just use http://127.0.0.1:5000 in my browser to access it.

If you've hardwired the domain "www.example.com" into your flask logic somewhere, i.e. when passing a redirect link to an OAuth service I would consider removing that hardcoded logic. Instead use an environment variable which you set differently on production/dev or else access to the current domain of a request with request.url_root or request.headers['Host'].

CodePudding user response:

Make use of Flask's SERVER_NAME and PREFERRED_URL_SCHEME builtin configuration values.

class Config(object):

    # blah blah

class DevelopmentConfig(Config):    

    SERVER_NAME = "example.local"
    PREFERRED_URL_SCHEME = 'http'


class ProductionConfig(Config):

    SERVER_NAME = "example.com"
    PREFERRED_URL_SCHEME = 'https'

On your development machine map example.local to 127.0.0.1 .

  • Related