Faits :
A.
Par arrêt du 15 août 2011, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a confirmé la condamnation de A._ pour tentative de meurtre par dol éventuel, agression, lésions corporelles simples qualifiées à une peine privative de liberté de sept ans, sous déduction de 278 jours de détention avant jugement. L'exécution de cette peine privative de liberté est arrivée à son terme le 29 mai 2017.
Par arrêt du 1er mars 2016, la Chambre des recours pénale du Tribunal cantonal du canton de Vaud a refusé la libération conditionnelle à A._ et a saisi le Tribunal criminel de l'arrondissement de Lausanne en vue de l'examen du prononcé éventuel d'une mesure thérapeutique institutionnelle ou d'un internement. Sur ordre du Président du Tribunal criminel de l'arrondissement de Lausanne, le Dr B._ a rendu un rapport d'expertise psychiatrique, le 16 décembre 2016. Par décision du 30 juin 2017, le Tribunal criminel a invité le Ministère public du canton de Vaud à examiner l'opportunité de saisir la Cour d'appel pénale du Tribunal cantonal du canton de Vaud en vue de l'examen du prononcé d'un internement à l'endroit de A._.
Le 4 juillet 2017, le Ministère public a recouru auprès de la Chambre des recours pénale contre cette décision, en concluant principalement à sa réforme en ce sens qu'une mesure thérapeutique institutionnelle (art. 59 CP) soit ordonnée à l'endroit de A._. Le même jour, le Ministère public a aussi déposé auprès de la Cour d'appel pénale une demande de révision du jugement du 30 juin 2017 en défaveur du prénommé, tendant au prononcé d'un internement (art. 65 al. 2 CP).
Par ordonnance du 7 juillet 2017, le Président de la Chambre des recours pénale a ordonné, en application de l'art. 388 let. b CPP, le maintien en détention du condamné, "pour le cas où il viendrait à être libéré de l'exécution des peines privatives de liberté qu'il purgeait actuellement, jusqu'à droit connu sur le recours déposé par la Ministère public". Par arrêt du 10 juillet 2017, la Chambre des recours pénale a rejeté le recours. Par arrêt du 16 août 2017, le Tribunal fédéral a déclaré irrecevables les recours interjetés par A._ contre l'ordonnance du 7 juillet 2017 et l'arrêt du 10 juillet 2017 (causes 1B_305/2017 et 1B_306/2017).
B.
Par courrier du 21 juillet 2017, le Président de la Cour d'appel pénale a informé A._ avoir été saisi d'une demande de révision en sa défaveur et l'a invité à se déterminer.
Après avoir tenu audience le même jour, soit le 21 juillet 2017 (de 9h02 à 9h46), le Président de la Cour d'appel pénale a ordonné la détention immédiate pour des motifs de sûreté de A._ pendant la procédure ouverte devant la Cour d'appel pénale ensuite de la demande de révision du Ministère public, par jugement du 21 juillet 2017.
C.
Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral de réformer le jugement du 21 juillet 2017 en ce sens qu'il est renoncé à prononcer la mise en détention pour des motifs de sûreté. Il conclut subsidiairement à l'annulation du jugement du 21 juillet 2017 et à la constatation que la détention reposant sur le jugement précité ne repose sur aucun titre valable. Il requiert aussi l'assistance judiciaire.
Invités à se déterminer, la Cour d'appel pénale et le Procureur en charge du dossier se réfèrent aux considérants de l'arrêt attaqué. Par courrier du 24 août 2017, le recourant a renoncé à répliquer.
D.
Par ordonnance du 17 août 2017, le Président de la I re Cour de droit public a rejeté la requête d'effet suspensif déposée par le recourant.
Considérant en droit :
1.
Le recours en matière pénale (art. 78 al. 1 LTF) est ouvert contre les décisions rendues en matière pénale, dont font partie les décisions relatives à la détention pour des motifs de sûreté au sens des art. 212 ss CPP (ATF 137 IV 22 consid. 1 p. 23). Selon l'art. 81 al. 1 let. a et b ch. 1 LTF, le prévenu a qualité pour recourir. Le recours a été formé en temps utile (art. 100 al. 1 LTF) contre une décision rendue en dernière instance cantonale (art. 80 LTF) et les conclusions présentées sont recevables au regard de l'art. 107 al. 2 LTF. Il y a donc lieu d'entrer en matière.
2.
A titre de moyen de preuve, le recourant requiert l'édition du dossier constitué dans la présente cause par le Tribunal cantonal; cette demande est satisfaite, le dossier cantonal ayant été déposé dans le délai imparti à cette fin (art. 102 al. 2 LTF).
3.
Le recourant soutient que sa détention pour des motifs de sûreté ne reposerait sur aucun titre valable.
3.1. A teneur de l'art. 412 al. 1 CPP, la juridiction d'appel examine préalablement la demande de révision en procédure écrite. L'alinéa 3 de cette disposition prévoit que si la juridiction d'appel entre en matière sur la demande, elle invite les autres parties et l'autorité inférieure à se prononcer par écrit.
3.2. Le recourant fait valoir que lors de l'audience du 21 juillet 2017, la Cour d'appel pénale in corpore n'était pas encore entrée en matière sur la demande de révision déposée par le Ministère public, au sens de l'art. 412 al. 1 CPP. Il prétend que ce n'est que lorsque la décision d'entrée en matière sur la demande de révision a été rendue que le Président de la Cour d'appel pénale est compétent pour ordonner la mise en détention pour de motifs de sûreté. Il soutient que l'avis pouvant valoir entrée en matière a été posté le 21 juillet 2017 à 16h00 et en déduit que sa détention pour des motifs de sûreté, prononcée à l'issue de l'audience à 9h46, ne reposerait sur aucun titre valable.
Ce raisonnement ne saurait être suivi. La décision d'entrée en matière au sens de l'art. 412 al. 1 CPP est datée du 21 juillet 2017, tout comme la décision de mise en détention pour des motifs de sûreté. Peu importe l'heure du dépôt à la poste du courrier contenant la décision d'entrée en matière ou la date de la notification dudit courrier à l'intéressé. Le CPP n'impose en effet aucune obligation à cet égard. De plus, il ressort expressément du procès-verbal de l'audience du 21 juillet 2017 que "le Président de la Cour d'appel pénale prend séance en audience dans le cadre de l'examen de la nécessité de détenir A._ pour des motifs de sûreté pendant la procédure ouverte devant la Cour d'appel pénale ensuite de la demande de révision formée par le Ministère public central à l'encontre du condamné".
3.3. Par conséquent, le Président de la Cour d'appel pénale était compétent en vertu de l'art. 388 let. b CPP pour prendre les mesures provisionnelles qui ne souffrent aucun délai. Il était ainsi habilité à ordonner sans délai la mise en détention du recourant pour des motifs de sûreté.
Mal fondé, le grief doit être écarté.
4.
Il s'ensuit que le recours est rejeté.
Dans la mesure où le recours paraissait d'emblée voué à l'échec, l'assistance judiciaire ne peut être accordée pour la procédure devant le Tribunal fédéral (art. 64 al. 1 et 2 LTF). A titre exceptionnel, il est renoncé à percevoir des frais judiciaires (art. 66 al. 1, 2ème phrase, LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée.
3.
Il n'est pas perçu de frais judiciaires.
4.
Le présent arrêt est communiqué au mandataire du recourant, au Ministère public central du canton de Vaud, Division affaires spéciales, et au Président de la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 31 août 2017
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Merkli
La Greffière : Tornay Schaller