Flutter with Python Django RESTFUL API



需要帮助

我已经为我的应用程序编写了一个颤振小部件,用于应用程序中的用户注册,还为Django RESTFUL API编写了一种API。如何将python Django中的API路由/URL与flutter小部件连接或集成?请给我一个代码样本。我将感谢任何帮助。

这是我的注册颤振小部件:

import 'package:flutter/material.dart';
class SignUpPage2 extends StatefulWidget {
@override
SignUpPage2State createState() => SignUpPage2State();
}
class SignUpPage2State extends State<SignUpPage2> { 
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
leading:  IconButton(
icon: new Icon(Icons.arrow_back, 
color:Colors.orange.shade700),
onPressed: () { 
Navigator.pop(context);
},
),
title: Text("Create acount", style: TextStyle(color:Colors.orange.shade700)),
backgroundColor: Colors.black,
),
backgroundColor: Colors.black45,
body: Center(
child: ListView(
shrinkWrap: true,
padding: EdgeInsets.only(left: 24.0, right: 24.0),
children: <Widget>[
new Center(
child: new Text("Welcome",
style: new TextStyle(
color: Colors.orange.shade700,
fontFamily: 'Poppins-Bold',
fontSize: 30.0,
),
textAlign: TextAlign.center,
),   
), 
SizedBox(height: 10.0),
new Center(
child: new Text("Please, Introduce Yourself",
style: new TextStyle(
color: Colors.white,
fontFamily: 'Poppins',
fontSize: 20.0,
),
textAlign: TextAlign.center,
),   
),  
SizedBox(height: 20.0),
TextField(
keyboardType: TextInputType.text,
autofocus: false,
decoration: InputDecoration(
hintText: 'First Name',
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(32.0),
),
),
),
SizedBox(height: 15.0),

TextField(
keyboardType: TextInputType.text,
autofocus: false,
decoration: InputDecoration(
hintText: 'Last Name',
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(32.0),
),
),
),
SizedBox(height: 15.0),
TextField(
keyboardType: TextInputType.phone,
autofocus: false,
decoration: InputDecoration(
hintText: 'Phone',
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(32.0),
),
),
),
SizedBox(height: 15.0),

TextField(
keyboardType: TextInputType.datetime,
autofocus: false,
decoration: InputDecoration(
hintText: 'Date of Birth',
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(32.0),
),
),
),
SizedBox(height: 15.0),
TextField(
keyboardType: TextInputType.text,
autofocus: false,
obscureText: true,
// initialValue: 'john@gmail.com',
decoration: InputDecoration(
hintText: 'Password',
filled: true,
fillColor: Colors.white,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(32.0),
),
),
),
SizedBox(height: 15.0),
Padding(
padding: EdgeInsets.symmetric(
vertical: 16.0),
child: Material(
borderRadius: BorderRadius.circular(30.0),
// shadowColor: Colors.orange.shade700,
// elevation: 5.0,
child: MaterialButton(
minWidth: 200.0,
height: 60.0,
onPressed: (){
setState(() {
Navigator.of(context).pushNamed('/SignUpPage3');

} ,
color: Colors.orange.shade700,
child: Text(
"Next", 
style: TextStyle(
color: Colors.white,
fontSize: 23.0,
),
),
),
),
),
]
),
),
);
}}

您需要将http包添加到您的项目中。然后将对Python REST端点的http调用封装在Future中。我讨厌发布链接作为答案,但在这种情况下,想不出比这个完美回答你问题的食谱例子更好的了!

此外,当您运行django服务器时,请确保使用以下命令运行它:python manage.py runserver0.0.0.0:8000.

最新更新