天天看點

第11,12章節-Python3.5-DjangoORM基本建立基本類型以及生成資料庫結構接着上一課

  • 接着上一課

  • 修改app01\views.py:
from django.shortcuts import render,HttpResponse,redirect

USER_DICT = {
    '1': {'name': 'root1', 'email': '[email protected]'},
    '2': {'name': 'root2', 'email': '[email protected]'},
    '3': {'name': 'root3', 'email': '[email protected]'},
    '4': {'name': 'root4', 'email': '[email protected]'},
    '5': {'name': 'root5', 'email': '[email protected]'},
}


def index(request,nid,uid):
    # indexx
    print(request.path_info)
    # /asdfasdfasdf/13/
    # reverse 能反轉
    from django.urls import reverse
    # v = reverse('indexx', args=(90,88,))
    v = reverse('indexx', kwargs={'nid':'1','uid':'99'})
    print(v)

    return render(request, 'index.html', {'user_dict': USER_DICT})


def detail(request, nid):
    # print(nid, uid)
    # return HttpResponse(nid)
    detail_info = USER_DICT[nid]
    return render(request, 'detail.html', {'detail_info': detail_info})


def login(request):
    # 判斷使用者擷取資料方式是GET,就傳回什麼資料
    if request.method == "GET":
        return render(request, 'login.html')
    # 判斷使用者擷取資料方式是POST,就判斷使用者送出的資料是否正确
    elif request.method == "POST":
        # 資料表中執行 select * from user where username='x' and password='x'
        return render(request, 'login.html')
    else:
        # PUT,DELETE,HEAD,OPTION...
        return redirect("/index/")


from django.views import View


class Home(View):

    # 調用父類中的dispatch(相當于助理,)
    def dispatch(self, request, *args, **kwargs):
        print('before')
        result = super(Home,self).dispatch(request, *args, **kwargs)
        print('after')
        return result

    def get(self,request):
        print(request.method)
        return render(request, 'home.html')

    def post(self,request):
        print(request.method, 'POST')
        return render(request, 'home.html')

           

image.png

  • app01\models.py
  • app01\models.py 代碼如下:
from django.db import models

# Create your models here.


class UserInfo(models.Model):
    # Django自動建立id列,自增,主鍵
    # 使用者名列,字元串類型,指定長度
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)


           
  • 接着建立表:
  • 先在settings中添加app01如下圖:
  • 然後在Terminal中運作輸入

    (python manage.py makemigrations)[建立表]

    (python manage.py migrate)[生成資料庫]

  • 然後産生如下目錄:
  • 連接配接sb.sqlite3的方法如下:
  • 打開Navicat,
  • 複制sb.sqlite3的路徑
  • 把路徑複制到如下:
  • 然後能看到已生成的app01_userinfo 的表(所建立的表)