用django搭建移动端服务器(附上简单的uwsgi+nginx+mongo

本文介绍了如何使用Python的Django框架搭建移动端服务器,包括环境配置、数据库连接、RESTful API的创建,以及如何通过uwsgi和nginx进行部署。在Django中集成mongoengine,实现数据存储,并提供了错误处理和调试方法。同时,讨论了如何在Android端进行API调用,为移动端开发打下基础。
摘要由CSDN通过智能技术生成

写完了写完了


先说明当前开发的版本

python-->3.6.2

django -->2.0.4

djangorestframework-->3.8.2

django-rest-framework-mongoengine-->3.3.1

mongoengine-->0.15.0

mongo-->3.6.4

操作系统为deepin 15.5beta(操作系统随意,只是我在windows下无法使用uwsgi,如果会的朋友希望你能告诉我方法

postman 6.0.4

pycharm-community 2017.1-1


安装请善用project interpreter


首先创建python空项目,名字随意

创建完成之后,在命令行里cd创建的目录,然后输入

django-admin.py startproject demo .

注意后面的点,表示在此目录下新建,若没有也行,只是会多一层目录

其中这个demo是项目名,可以更改

若windows情况下报错,可以在python目录内找到django-admin.py这个文件,然后将它复制到你的项目根目录,然后命令行输入(大概,具体忘了

python django-admin.py startproject demo .

成功之后能看见新生成的文件


之后创建应用,依旧在命令行输入,这次不需要加点

django-admin.py startapp service

成功之后


现在打开demo目录下的settings.py

在  INSTALLED_APPS 中插入

'rest_framework',
'service.apps.ServiceConfig',
'rest_framework_mongoengine',

其中 1和3 是restful和mongo app的导入

2 是在应用app目录下的apps.py 下的类名


然后 settings.py 中继续添加代码:

from mongoengine import connect
connect('test')

其中 test 是数据库库名,不用提前创建

这样数据库的连接就弄好了,就两行代码

然后把 settings.py 中的  DATABASES 写成:

DATABASES = {
    'default': {
        'ENGINE': None,
    }
}

最后把 ALLOWED_HOSTS修改成:

ALLOWED_HOSTS = ['*']

这里意思是允许任何ip访问,当然不想的朋友也能够自己写允许访问的ip

然后打开 service 目录下的 models.py ,这里是定义数据表结构的类,这里我们简单弄弄:

import mongoengine

class User(mongoengine.Document):
    # 默认id
    # 名字,字符串字段,最大长度36位,默认字符KirisameMarisa,允许为空
    name = mongoengine.StringField(max_length=36, default='KirisameMarisa')
    # 年龄,整型字段,最大长度5,不允许位空
    age = mongoengine.IntField(max_length=5, null=False)

    # 更多字段请百度

然后在 service 目录下新建 serializers.py

from .models import User
from rest_framework_mongoengine import serializers as mongo_serializers

# 名字随意
class UserSerializer(mongo_serializers.DocumentSerializer):
    class Meta:
        # 对应类名
        model = User
        # 各个字段,其中_id是默认id字段
        fields = ('id', 'name', 'age')

然后在 service 目录下 views.py 添加代码(views是写数据传入后要执行的操作):

from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import User
from .serializers import UserSerializer

# 规定该方法只能通过post、get和delete请求
@api_view(['POST', 'GET', 'DELETE'])

# request就是你的请求
def user_api(request):

    # 如果请求是get
    if request.method == 'GET':

        # 获取user表全部的用户
        users = User.objects.all()

        # 将获取结果序列化,当many=True的时候才允许返回多条数据,不然报错
        serializer = UserSerializer(users, many=True)

        # serializer.data是一个字典,status是状态码,2XX是成功返回
        return Response(serializer.data, status=status.HTTP_200_OK)

    # 如果请求是post
    elif request.method == 'POST':

        # request.d
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值