使用python的包下載管理工具pip安裝django
pip install django
創建django項目
django-admin startproject my01 #后面是項目名稱
創建好的項目目錄是這樣
———————————————————————————————————————————————————————————————————————————————
現在我們已經創建好一個django項目
django-admin startapp api
然后我們再進項目里創建一個app
創建好APP的目錄
緊接着我們去配置文件setting中注冊app
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'api'#注冊APP ]
注冊好APP之后在項目的總路由做分發路由
from django.urls import path,include urlpatterns = [ # path('admin/', admin.site.urls), path('api/',include('api.urls')) ]
然后在app中創建一個子路由文件
在這個子路由文件中就可以寫我們的路由啦
from django.urls import path from api import views urlpatterns = [ path('hello/',views.hello),#每個路由對應一個視圖函數 path('index',views.index) ]
對應的視圖函數
def hello(request): return HttpResponse("hello") def index(request): return HttpResponse('index')
寫好路由和視圖我們就可以運行我們的項目
第一條最簡單的接口就實現了
也可以寫成cbv的形式,這種寫法更簡潔,結構更清晰
路由寫法
urlpatterns = [ path('user',views.UserView.as_view()) ]
對應的視圖類
class UserView(views.View): def get(self,request,*args,**kwargs): return HttpResponse('get') def post(self,request,*args,**kwargs): return HttpResponse('post') def put(self,request): return HttpResponse('put') def delete(self,request): return HttpResponse('delete')
接下來我們就要配置數據庫
在setting中這是系統默認的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
而我們要使用高級一點的mysql
則不用它的配置,換我們自己的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'hello',#庫名 'USER': 'root',#賬號 'PASSWORD': 'root',#密碼 'HOST': '127.0.0.1',#IP地址 'PORT': '3306',#端口號 "OPTIONS": {"init_command": "SET default_storage_engine=INNODB;"} } }
然后在項目的Init文件中加上這句代碼
import pymysql
pymysql.install_as_MySQLdb()
此時我們的數據庫已經配置好了
我們要在models這個文件中創建模型類
from django.db import models # Create your models here. class Teacher(models.Model): #db_column為數據庫表頭名,verbose_name為后台頁面列表中顯示的字段名 tname = models.CharField(max_length=20,db_column='名字',verbose_name='名字') tgender = models.BooleanField(default=True,db_column='性別',verbose_name='性別') tid = models.CharField(max_length=20,db_column='職工號',verbose_name='職工號') isDelete = models.BooleanField(db_column='是否刪除',default=False)
生成遷移文件
python manage.py makemigrations
執行遷移
python manage.py migrate
此時我們的數據庫就生成表了
就可以操作數據庫啦
models.Register.objects.create(username=username, password=password, prop=prop, name=name, sex=sex, age=age, company=company, duty=duty, phone=phone, desc=desc, )
查找
obj = models.Register.objects.filter(username=xiaoyong).first()
obj = models.Register.objects.get(id=3)
obj = models.Register.objects.all()
改
models.Register.objects.filter(username=username).update(prop=prop, name=name, sex=sex, age=age, company=company, duty=duty, phone=phone, desc=desc, )
刪除
obj = models.Reqister.objects.get(id=3) obj.delete()
models.Reqister.objects.get(password='xiaoli').delete()