1.Django创建MoyaDemo项目 +MySQL
2.编写API
3.创建Swift APP
4.Moya封装网络请求
5.APP中调用 API实现注册
6.app登录
1.打开Pycharm 新建Django项目,python版本选用的是3.5 ,项目命名为:MoyaDemo,APP命名为Moya
创建完成后:
直接运行项目:
得到下面的截图,说明系统正常启动了。
2.更换数据库,将数据库更换成Mysql,先安装pymysql插件,将django默认的数据库引擎进行替换。
import pymysql
pymysql.install_as_MySQLdb()
登录Mysql数据库,新建一个数据库名为MoyaDemo
在Django Setting 修改数据库引擎配置号Mysql数据库
DATABASES = {
'default': {
'ENGINE':'django.db.backends.mysql',
'NAME':'MoyaDemo',
'USER':'root',
'PASSWORD':'654321',
'OPTIONS': {'init_command':"SET sql_mode='STRICT_TRANS_TABLES'"}
}
}
在Tools里运行 manage.py 然后输入makemigrations
再输入 migrate 创建数据库表
打开Mysql会发现Django创建了很多表结构
再次运行项目:
还是提示 It Worked!说明更换数据库没有问题。
更换当地语言为中文,时区改为上海
修改前:
修改后:
LANGUAGE_CODE ='zh-hans'
TIME_ZONE ='Asia/Shanghai'
重新运行项目:看到中文提示,说明语言也更换成功。
创建超级管理员:
在manage.py 运行
createsuperuser
输入用户名,邮箱,密码
完成后,访问 http://127.0.0.1:8000/admin/,输入刚刚创建的用户和密码
登录成功后:
Django 管理后台自带了用户和组功能,自己新建帐号。
在models中新建用户模型:
在manage.py 运行:创建表结构
makemigrations
再运行:同步数据
migrate
在admin中注册Model:
from.modelsimportGoods,ProductGroup
@admin.register(Goods)
class Products(admin.ModelAdmin):
pass
@admin.register(ProductGroup)
classProductGroup(admin.ModelAdmin):
pass
运行项目查看效果:
使用Djagno REST Framework
编写api
安装:rest framework
pip install djangorestframework
安装完成后:
在setting app中注册:rest_framework
'rest_framework'
设置分页:
REST_FRAMEWORK = {
# Use Django's standard
django.contrib.auth
permissions,# or allow read-only access for unauthenticated users.
'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE':2,
'DEFAULT_FILTER_BACKENDS': ('rest_framework.filters.DjangoFilterBackend',)
}
序列化:新建:serializers.py 文件在Moya主项目中
# coding: utf-8
from rest_framework impor tserializers
from.models impor tUser,Entry
classUserSerializer(serializers.ModelSerializer):
classMeta:
model = User
fields = ('name','mail')
classEntrySerializer(serializers.ModelSerializer):
classMeta:
model = Entry
fields = ('title','body','created_at','status','author')
进入的View视图中:
在View文件中定义ViewSet
import django_filters
from rest_framework import viewsets, filters
from .models import User, Entry
from .serializers import UserSerializer, EntrySerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class EntryViewSet(viewsets.ModelViewSet):
queryset = Entry.objects.all()
serializer_class = EntrySerializer
在Moya app中新建url.py文件
# coding: utf-8
from rest_framework import routers
from.views import UserViewSet, EntryViewSet
router = routers.DefaultRouter()
router.register(r'users',UserViewSet)
router.register(r'entries',EntryViewSet)
定义URL pattern
# coding: utf-8
fromdjango.conf.urlsimporturl
fromdjango.contribimportadmin
fromMoya.urlsimportrouterasmoya_router
fromdjango.conf.urlsimporturl,include
urlpatterns = [
url(r'^admin/',admin.site.urls),
url(r'^api/',include(moya_router.urls)),
]
运行项目:打开:http://127.0.0.1:8000/api/
http://127.0.0.1:8000/api/users/
http://127.0.0.1:8000/api/entries/
参考文章:
http://blog.csdn.net/svalbardksy/article/details/50548073
https://www.sitepoint.com/building-simple-rest-api-mobile-applications/