使用 Python Django RESTFUL API 进行颤振

Aze*_*ola 5 python django dart flutter

需要帮忙

我已经为我的应用程序中的用户注册编写了一个颤振小部件,还有一个带有 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,
                                  ),
                              ),
                          ),
                        ),
                    ),

          ]
        ),
      ),
    );
  }}
Run Code Online (Sandbox Code Playgroud)

stt*_*106 1

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