1.Django創(chuàng)建MoyaDemo項目 +MySQL
2.編寫API
3.創(chuàng)建Swift APP
4.Moya封裝網(wǎng)絡請求
5.APP中調用 API實現(xiàn)注冊
6.app登錄
1.打開Pycharm 新建Django項目雷厂,python版本選用的是3.5 她按,項目命名為:MoyaDemo,APP命名為Moya
創(chuàng)建完成后:
直接運行項目:
得到下面的截圖图甜,說明系統(tǒng)正常啟動了乎澄。
2.更換數(shù)據(jù)庫壤短,將數(shù)據(jù)庫更換成Mysql,先安裝pymysql插件雁社,將django默認的數(shù)據(jù)庫引擎進行替換浴井。
import pymysql
pymysql.install_as_MySQLdb()
登錄Mysql數(shù)據(jù)庫,新建一個數(shù)據(jù)庫名為MoyaDemo
在Django Setting 修改數(shù)據(jù)庫引擎配置號Mysql數(shù)據(jù)庫
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 創(chuàng)建數(shù)據(jù)庫表
打開Mysql會發(fā)現(xiàn)Django創(chuàng)建了很多表結構
再次運行項目:
還是提示 It Worked霉撵!說明更換數(shù)據(jù)庫沒有問題磺浙。
更換當?shù)卣Z言為中文,時區(qū)改為上海
修改前:
修改后:
LANGUAGE_CODE ='zh-hans'
TIME_ZONE ='Asia/Shanghai'
重新運行項目:看到中文提示徒坡,說明語言也更換成功屠缭。
創(chuàng)建超級管理員:
在manage.py 運行
createsuperuser
輸入用戶名,郵箱崭参,密碼
完成后呵曹,訪問 http://127.0.0.1:8000/admin/,輸入剛剛創(chuàng)建的用戶和密碼
登錄成功后:
Django 管理后臺自帶了用戶和組功能何暮,自己新建帳號奄喂。
在models中新建用戶模型:
在manage.py 運行:創(chuàng)建表結構
makemigrations
再運行:同步數(shù)據(jù)
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/