1. 程式人生 > >Django --- Django下載和APP創建 ORM (大概步驟)

Django --- Django下載和APP創建 ORM (大概步驟)

文件 migration 註冊 att span 添加 mode pychar con

1,下載:
      命令行: pip install django == 1.11.15
      pip install -i或 源 django == 1.11.15
      pycharm
      settings 解釋器 點 + 號 輸入django 選擇版本

2,創建 Django項目
      1,命令行: (可能有的東西沒配置)
          cd 保存項目的目錄
          django - admin startporject 項目名
      2,pycharm(可以自己都配置好)
          filr(按鈕)--> new project --選擇django ---->選擇解釋器--創建django項目


3,啟動項目
        1,命令行:
          切換到 manage.py的目錄下
          cd
          python manage.py runserver #127.0.0.1:8000
          python manage.py runserver 80 #127.0.0.1:8000
          python manage.py runserver #0.0.0.1:8000
        2.pycharm
          配置項
          點綠色三角啟動


4,settings配置
    1,靜態文件
        STATIC_URL= "/static/" #別名 ()
        STATICFILES_DIRS = [
        os.path.join(BASE_DIR,"static"),

        ] (可以創建多個)

    2,TEMPLATES 模版 放HTML文件的地方
      DIRS [os....] 自動生成的

    3,註釋 csrf中間件
      MIDDLEWARE 第四行 csrf 註釋掉這一行
    4,數據庫的配置

5, URL 和函數的對應關系 ---> urls.py
  urlpatterns[
    url(r"^admin/",admin.site.urls),
    url(),
  ]

6.APP
    1.創建APP
      1,命令行:
        python manage.py startapp APP名
      2,pycharm
        tools ---> run manage.py task --> startapp APP名

    2.註冊APP
      在settings.py中
      INSTALLED_APPS[
      加上自己的APP名(如若pycharm創建 會自動添加 若是手動添加則按規範來
      "APP名字.apps.App01Config")

      ]

7.使用mysql數據庫
    1.創建一個數據庫
    2.在srttings配置:
      DATABASES = {
          ‘default‘: {
            ‘ENGINE‘: ‘django.db.backends.mysql‘, #引擎
            ‘NAME‘: ‘db66‘, #數據庫名字
            "USER": "root", #賬戶
            "PASSWORD": "666666", #密碼
            "HOST": "127.0.0.1", #IP地址
            "PORT": 3306, #端口號
          }
      }
    3.告訴Django 使用pymysql 模塊連接數據庫
      在settings.py 同級目錄下的 __init__.py中寫(下載好了 pymysql):
        import pymysql
        pymysql.install_as_MYSQLad()

    4.建表 在APP文件夾裏 models.py文件中寫類(繼承 models.Model)
        class Userinfo(models.Model):
          user = models.CharField(max_length=32)
          pwd = models.CharField(max_length=32)

    5.執行命令 (數據庫遷移命令)
      Tools ---> Run~~
          python manage.py makemigrations #記錄models.py中類是不是有變化 將變化的內容記錄下來 記錄到了 APP文件下 migrations       0001_initial.py裏面
          python manage.py migrate

8 .ORM
      對象和關系型數據庫的映射 通過操作對象的方式來操作數據庫

      映射關系;
      類 ---> 數據表
      對象 ---> 數據行
      屬性 ---> 字段

      ORM 能做的事:
      操作數據表 (建表,刪表,改表)
      操作數據行

      ORM 的操作 :
        from login import models
        # 獲取所有數據
        models.Userinfo.objects.all() ---> Queryset類型
        # 獲取一條數據
        models.Userinfo.objects.get(user="??",pwd="??")
        get取不到數據或者取到多條數據的時候報錯
        #創建一條數據
        models.Userinfo.objects.creat(user="??",pwd="??")

        

        1.查
        from login import models
        # 獲取所有數據
        models.Userinfo.objects.all() ---> Queryset類型
        models.Userinfo.objects.all().order.by(‘id‘)排序 升序

        # 獲取一條數據
        models.Userinfo.objects.get(user="??",pwd="??")
        get取不到數據或者取到多條數據的時候報錯

        屬性:
        pub_pbj.id
        pub_obj.name
        外鍵:
        book_obj.id
        book_obj.title
        book_obj.publisher ---->書籍關聯的出版社對象
        book_obj.publisher_id ---->書籍關聯的出版社對象的id
        偶對多:
        autho_obj.id
        autho_obj.name
        autho_obj.books ----->管理對象
        autho_obj.books.all()
        2.增
        #創建一條數據
        (新變量名)=models.Userinfo.objects.creat(name="新名字")

        外鍵:
        models.Book.objects.creeate(title = ‘新的書名‘,publisher_pub_obj)
        models.Book.objects.create(title=‘新的名字‘,publisher_id=pub_obj.id)
        多對多:

        autho_obj=models.Author.objects.create(name=‘作者名字‘)
        authon_obj = books.set([1,2,5])

        3.刪
        #刪除一個
        models.Publisher.objects.get(id=1,name="xxx").delete()
        -------------------------------------------------------

        models.Publisher.objects.all().delete()

        4,改
        #普通修改
        pub_obj.name = ‘新的名字‘
        pub_obj.save()
        -----------------------------------------------------------
        book_obj.title = ‘新的書名‘
        book_obj.publisher = pub_obj

        book_obj.save()

9.form表單

      1.method ="post" (form表單裏面 必須帶有這個) action="" ,這是請求方式 和提交數據的地址
      2.所有的 input標簽要有name屬性, name的名字要和 上面ORM 的user pwd 相同
      3.有一個input 的type="submit" 或者有一個button 按鈕 就可以提交form表單

10. views.py 寫函數
      request 跟請求相關的內容
      request.method 字符串 請求方式 GET/POST
      request.POST post請求提交的數據 字典
      request.GET get請求提交的數據

    返回值
      from django.shortcuts import HttpResponse,render,redirect

      HttpResponse("字符串") -->頁面顯示的就是字符串
      render(request,"模版文件的名字") -->渲染你的HTML文件返回給瀏覽器
      redirect("/要跳轉的URL/") --->重定向 告訴瀏覽器再向瀏覽器發次GET請求

Django --- Django下載和APP創建 ORM (大概步驟)