目的
Djangoは変更データベーステーブルの検索を実現するためにWEBAPI、追加と削除を使用して構築されました。
HTTPベースのデータ伝送プロトコル、データフォーマット:JSONの
データベーステーブルORM形態CRUD(追加変更チェック)
開発段階
> newProject - Djangoプロジェクト、ファイルを構築するためにpycharmプロを使用して、
プロフェッショナルの使用は、登録コードを必要とし、あなたはオンラインを自分でダウンロードすることができます
プロジェクトとアプリケーション
プロジェクトは、現在のアプリケーションの特定方法では、フレームのAHを発生させます
アプリケーションの作成
python manage.py startapp apitest #apitest是应用名
Djangoは、プロジェクトのアプリケーションで使用されます
settings.py構成データベース
デフォルトのデータベースを変更します。
# DATABASES = { # 默认数据库sqlite连接
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
# }
DATABASES={ # mysql连接
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'py1', # 数据库名
'USER':'root', # mysql用户名
'PASSWORD':'root', # mysql密码
'PORT':'3306',
}
}
作成するためのAPIとコール(活動:アプリケーション、Project1のプロジェクト名)
活動/ models.pyイベントテーブルを作成します
from django.db import models
# Create your models here.
class activity(models.Model):
# class Meta:
# db_table='activities_activity'
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
cost = models.CharField(max_length=20)
deposit = models.CharField(max_length=20)
activity_price_deposit = models.CharField(max_length=20)
toplimit = models.CharField(max_length=20)
Statement = models.CharField(max_length=20)
移行ファイルは、MySQLにテーブルにモデルを追加
python manage.py makemigrations //生成迁移文件
python manage.py migrate //进行迁移
で作成実装5つのメソッドの活動/ views.py
from django.shortcuts import render
from .models import activity
import simplejson
import json
from django.http import JsonResponse,HttpResponse,HttpRequest
def reg(request:HttpRequest):
return HttpResponse("test")
def delete(request:HttpRequest):
try:
payload = simplejson.loads(request.body)
id = payload['id']
mgr = activity.objects.get(id=id)
mgr.delete()
return JsonResponse({'Status': 'DeleteSuccess'})
except Exception as e:
return JsonResponse({'Runstatus': e.args})
def update_by_id(request: HttpRequest):
try:
payload = simplejson.loads(request.body)
id = payload['id']
mgr = activity.objects.filter(id=id)
name = payload['name']
cost = payload['cost']
deposit = payload['deposit']
activity_price_deposit = payload['activity_price_deposit']
toplimit = payload['toplimit']
Statement = payload['Statement']
ac = activity()
ac.id = id
ac.name = name
ac.cost = cost
ac.deposit = deposit
ac.activity_price_deposit = activity_price_deposit
ac.toplimit = toplimit
ac.Statement = Statement
ac.save()
return JsonResponse({'Status': 'UpDateSucess'})
except Exception as e:
return JsonResponse({'Status': 'UpDateError'})
def Select_by_id(request: HttpRequest):
try:
payload = json.loads(request.body)
id = payload['id']
mgr = activity.objects.get(id=id)
data={
'name': mgr.name,
'cost': mgr.cost,
'deposit' : mgr.deposit,
'activity_price_deposit': mgr.activity_price_deposit,
'toplimit': mgr.toplimit,
'Statement': mgr.Statement
}
return JsonResponse(data)
except Exception as e:
return JsonResponse({'Runstatus':e.args})
def Create(request: HttpRequest):
try:
payload = simplejson.loads(request.body)
id = payload['id']
mgr = activity.objects.filter(id=id)
if mgr: # 如果数据库中存在
return JsonResponse({'Status': 'Exist'})
else:
name = payload['name']
cost=payload['cost']
deposit=payload['deposit']
activity_price_deposit=payload['activity_price_deposit']
toplimit=payload['toplimit']
Statement=payload['Statement']
ac = activity()
ac.id = id
ac.name = name
ac.cost=cost
ac.deposit=deposit
ac.activity_price_deposit=activity_price_deposit
ac.toplimit=toplimit
ac.Statement=Statement
ac.save()
return JsonResponse({'Status': 'CreateSucess'})
except Exception as e:
return JsonResponse({'Status': 'CreateError'})
アクティビティ/サブルートを作成するのurls.py(デフォルトではそのようなファイルではありません、あなたが自分自身を作成する必要があります)
from django.conf.urls import url
from .views import reg,delete,Select_by_id,update_by_id,Create
urlpatterns =[
url(r'^reg$',reg),
url(r'^delete$',delete),
url(r'^Select_by_id$',Select_by_id),
url(r'^update_by_id$',update_by_id),
url(r'^Create$',Create),
]
Project1の作成/ルーティングのurls.py
urlpatterns = [
url('admin/',admin.site.urls), # 根目录
url(r'^activities/',include('activities.urls')), # 指向子路由
]
一般的なエラーと解決策
データベースの移行異常
質問がなければ、データ移行コマンドは、MySQLのバージョンを確認し、データベースステートメントを使用していません
ダウンロードして、使用するプロジェクト
Baiduのネットワークディスクリンク
リンク:https://pan.baidu.com/s/1zGAy24ZonOUQJtEo4Zp2-g
抽出コード:s6wr
テストモード
http://127.0.0.1:8000/admin
アカウント:管理者パスワード:adminadminです
リクエストを送信Reqest
http://127.0.0.1:8000/activities/Create
コンテンツが含まれています:
{
"id":"15",
"name":"jack",
"cost":"123",
"deposit":"test",
"activity_price_deposit":"test",
"toplimit":"test",
"Statement":"test"
}