Django

模型:承載數據的對象並提供了對數據的curd(增刪改查)
  模性類必須繼承models.Model類或子段:
  class BlogUser(models.Model)
      字段:
      username = models.CharField(max_length=30)
      pwd = models.CharField(max_length=32)

在MySQL數據庫裏創建一個數據庫爲(數據庫名:pyblog_db 字符集爲:utf_8)


pyblogsys
  settings.py  (設定)
      更改django的數據庫鏈接引擎
      DATABASES   (django driver mysqlclient 1.3.7+) django要安裝一個驅動程序(driver)mysqlclient 1.3.7+
                   安裝驅動程序在DOS命令下輸入 pip linstall mysqlclient
      DATABASES = {  (數據庫)
        'default';{  (默認)
            ‘ENGINE':'django.db.backends.mysql', (引擎)
             'NAME':'pyblog_db', (名字)
             'USER':'root',       (用戶)
             'PASSWORD':'mysql的密碼', (密碼)
             'HOST':'locahost',  (機主)
             'PORT':'3306',  (端口)

      在settings.py的 INSTALL_APP中添加逆自己定義的app
      
      執行manage.py的shell命令 ctrl+alt+r
      輸入:makemigrations bloguser [appname]  生成創建數據庫的腳本
      它會在bloguser的app下創建一個 migrations\0001_initial.py

      輸入:sqlmigrate bloguser 0001[migrationname] 打印SQL語句
      爲了顯示創建MySQL,pyblog_db數據庫裏表的語句


      輸入migrate bloguser 0001   運行創建數據庫表的腳本
      在bloguser數據庫中按照以上0001_initial.py中的語句添加表

  tempates (模板)
      創建bloguser目錄
      在bloguser目錄下創建add.html和show.html兩個文件
      add.html中的內容:
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
      <form action="register" method="post">
          {% csrf_token %} # 指紋驗證 必須有
          用戶名:<input type="text" name="username"><br />
          密碼:<input type=password" name="pwd"><br/>
          <input type="submit" value="註冊">
      </form>
      </body>
      </html>
   
      show.html中的內容
      <!DOCTYPE html>
      <html lang="en">
      <head>
           <meta charset="UTF-8">
           <title>Title</title>
      </head>
      <body>
      恭喜逆註冊成功!
      {{ blogUser.username }}---{{ blogUser.pwd }}
      </body>
      </html>

      查看settings.py文件下的TEMPLATES中是否有,
      'DIRS':[os.path.join(BASE_DIR,'templates')]這句代碼。
      它的作用是把bloguser目錄下的文件關聯在一起

在bloguser下
  views.py
    from django.shortcuts import render (導入一個渲染器模塊)
    from .models import *
    #Create your views here. (創建你的觀點)
    def register(request):
       # GET 要來註冊  add.html
       if request.method == 'GET':
          return render(request,'bloguser/add.html',{})
       # POST 註冊  show.html
       else:
          blogUser = BlogUser()
          blogUser.username = request.POST.get('username')
          blogUser.pwd = request.POST.get('pwd')
          blogUser.save()
          return render(request,'bloguser/show.html',{'blogUser':blogUser})
          重定向的設定要改變POST的返回值,
          return redirect(reverse('user:show',args=[blogUser.id]))


在bloguser文件下創建urls.py文件,用它和pyblogsys文件下的urls.py關聯
在pyblogsys下的urls.py中的內容:
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/',include('bloguser.urls',namespace='user')),
]

在bloguser下的urls.py中的內容:
from django.urls import  path
from .views import *
app_name='user' #和重定向有關
urlpatterns = [
    path('register',register),
    path('show/<int:id>',show,name='show'),#重定向的設置 連接views.py裏的show函數
]

轉發和重定向:
    轉發:一次請求和響應,請求的地址沒有變化,如果此時刷新頁面就會重做現象
    重定向:一次以上的請求和響應,請求地址發生一次以上的變化,如果此時刷新頁面不會發生重做現象

    重定向:要在views.py裏導入redirect(重定向模塊) 再導入reverse模塊(解決跳轉路徑)
    重定向的意思是重新導入另一個地址,在views.py文件裏新定義一個個行爲
    def show(request,id): (它與bloguser裏的urls.py連接)
       blogUser = BlogUser.objects.get(pk=id)

       return render(request,'bloguser/show.html',{'blogUser':blogUser})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章