Starting with the basics:
The backend for the app you can definitely do in Python. The upside is that its going to be comparatively easy to build, upgrade, and maintain, but with more users, you will have to spend more on infra. There is a use case for starting out with something more low level like Rust if you are proficient in it, because it will save you money down the line once your userbase grows. This is usually not the case though. You can use Django which has a lot more predefined tools for everything web app, or you can use something like FastAPI which is a lot more minimialistic and requires a lot less up front setup, and then use other tools for things like templating. Keep in mind that a framework does not often include an actual web server. Django for example doesn't, so you have to run your own. Fast API uses uvicorn as a web server so you get that out of the box.
The frontend design (for web app) is different. Generally no matter what too you use, it eventually compiles to html, css, javascript. The traditional way of doing this is with nodejs. Vue.js is what I recommend usually for a framework, since its quite a bit faster and more minimal. You usually end up running a "build" step which transpiles all your files into html/css/js files to serve by your backend.
Mobile app is generally not really needed in most cases if you web app is a good experience for mobile. The only time an app is worth it is if you are using some sensor data or you need high performance within the app. Your app could be a simple webview of a mobile app with some small logic to auto authenticate instead of having to log in.
You can do mobile app and web app for mobile together in React Native. There is also Beeware which allows you to do everything in Python.