How to make a page have a specific layout?

I think you can set the type front matter variable for that.

For example, if type is "release-notes", then Hugo uses the layouts/_default/release-notes.html template to render the file.

Much more details about how Hugo matches a type with a template is on the template lookup order page. There look for the entries that mention ‘type’, such as:

Section list for “posts” section with type set to “blog”