You use PyDADL by writing XML files that describes the GUI parts and you write Python code for all the rest (server callbacks and client side code). You can arrange your server code freely in different files and folders as if you write a Python module. At the client side, in addition to the available widgets, you can write custom widgets by subclassing PyDADL widget classes or create your own classes that derives directly from Qt classes and intergrate them in the UI. You can also use PyDADL internal API directly in your code to create dynamic UI. You could also use the Qt Designer tool to design the user interfaces.
For the database part, PyDADL supports only the MySQL server but the architecture for adding others databases engines is already present. There is a SQLite driver but it is not very well tested. PyDADL doesn't automate the creation of databases and tables, it is up to you to design your database. PyDADL offers a set of DAO classes that abstract the access to data, you can use your databases without writing SQL queries, but if you want to do so, you can.