Yes it can. To do this you need to create a new EntryPoint class that
creates an instance of your widget/app and adds it onto the RootPanel.
Example:
class MyEntryPoint implements EntryPoint
{
	/**
	 * This is the entry point method.
	 */
	public void onModuleLoad() {
		RichTextArea editor = new RichTextArea();
		RootPanel.get("RTA-wrapper").add(editor);
	}
}
Now you can create a template in your favorite language/framework.
Start by copying the details of the default HTML from gwt such as the
CSS, <script> tags, etc... and paste it into your new template. Create
a DIV with the ID RTA-wrapper (<div id="RTA-wrapper"></div>) for your
widget or application to load into.
Example template for Django:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>{{title}} - Editing</title>
    {% include "default_css.html" %}
    <meta http-equiv="content-type" content="text/html;
charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="/static/Sites.css">
    {% include "preprepJS.html" %}
    <script type="text/javascript" language="javascript" src="/static/
sites/sites.nocache.js"></script>
</head>
<body>
    {% include "head.html" %}
    <div id="main">
        {% include "sidebar.html" %}
        <div id="content">
            	<div id="RTA-wrapper"></div>
        </div>
    </div>
        <!-- OPTIONAL: include this if you want history support -->
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1'
style="position:absolute;width:0;height:0;border:0"></iframe>
</body>
</html>