Django—連接MySQL

 

Djalgo基礎配置方法

 

 

靜態文件配置方法css

  1 全部的靜態文件都放在 static 文件夾下,例如Bootstrap值類的第三方庫,一般 static 文件下會建立 css image js 文件,用於存放與前端相關的數據文件。前端

       

  2 Django setting文件配置。python

 

# 靜態文件配置
STATIC_URL = '/static/' # 接口前綴,跟你的靜態文件夾名字沒有任何關係,默認狀況下這個前綴和靜態文件夾名字同樣。


STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static') # 這裏的路徑就是你靜態文件夾的路徑
   os.path.join(BASE_DIR,'static2') # 一般項目中會出現多個static文件夾,有些app也會有獨立的static文件夾。
                        前端請求會依次查找列表中全部的靜態文件路徑,找到則馬上中止,沒有則返回
                        404          

]

 

 

在Pytham中連接MySQL數據庫的方法mysql

    1 建立數據庫sql

           

   2 修改配置文件數據庫

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 鍵必須是大寫
        'NAME': 'day55',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'123'
    }
}

   3 告訴Django 用pymysql替換它默認的mysqldb模塊,連接數據庫。django

    兩種方式:1 在項目文件夾下的__init__.py 或 直接在你應用文件夾下面的__init__.py安全

    # 固定寫法服務器

    inport pymysqlsession

    pymysql.install_as_MySQLdb()

 

   4 Django 中的ORM

    什麼是orm? 

    對象關係映射

       類                  》》》  表
            對象              》》》  表記錄
            對象的屬性   》》》 一條記錄某個字段對應的值

    注意:在Django中不能自動建立庫,可是能夠自動建立表,一個Django項目使用一個庫,不要多個Django項目共用一個庫。

   5 數據庫同步

    第一次連接數據庫/或後期對現有表的字段作更改操做,都必須執行數據同步命令!

      同步命令:python3 manage.py makemigrations  將你的數據庫變更記錄到一個小本本上(並不會幫你建立表)
           python3 manage.py migration  將數據庫變更正式同步到數據庫中

        下方的session正式記錄用戶登錄狀態的文件

 

   

 

 

使用Django ORM操做數據庫數據

 

 

  新增數據

      兩種方式:    第一種方式

         1  user_obj=model.User.object.create(name=username,password=password)

          第二種方式

         2  user_obj=model.User(name=username,password=password)

          user_obj.save()          

  查詢數據
 
    user_list = models.User.objects.all()  # 獲取user表全部的數據
    # 只要是QuerySet就能夠點query查看獲取到當前QuerySet對象的內部sql語句
    print(user_list.query)

    查詢數據的時候注意獲取的對象是一個queryset對象仍是以一個數據對象

    user_query=models.User.objects.filter(id=edit_id).first # 使用first取出的就是一個數據對象了。

    #  當filter當匹配的條件不存在的時候,返回一個空的queryset對象。

      <QuerySet []> <class 'django.db.models.query.QuerySet'>

    user_obj = models.User.objects.get(id=edit_id)  # 用get能夠直接獲取到數據對象自己可是查詢條件不    存在的狀況下直接報錯

 

   刪除數據
    models.User.objects.filter(id=1).delete()  # 會將queryset全部的數據對象所有刪除 

 

研究GET 與POST請求的差異

  GET是請求,若是請求類型是GET,說明用戶只想獲取某項資源,因此咱們將用戶須要的資源響應給他就好。

  POST是提交,若是是POST請求,說明用戶須要向服務器提交數據,服務器就要準備接收用戶提交的數據,此時POST模式和GET模式均可以傳輸用戶的數據,可是區別在於,POST更安全,因此此時應該選擇POST。在一些不須要考慮數據安全的狀況下可使用GET模式傳輸數據。例如獲取用戶ID時。

  requeset.method 能夠拿到兩種請求方式,可使用 request.POST / request.GET 的方式分別獲取到請求數據的結果,數據形式是一個字典,該字典是 QueryDict 類型,能夠經過對象點方法取獲取到相應的value,也可使用get()方法取值。

若是從前端提交的數據,在同一個key裏包含多個值的狀況(< QueryDict: {'username': ['jason',‘egon’], 'password': ['123']} >),須要使用getlist()方法才能取出所有的結果,若是是使用get()方法只能取到最後一個value。

 

   注意POST是提交數據,在HTML中只有 form表單中的 submit 和 botton 是有提交數據效果的。

 

 

經過Django 生成圖書管理系統表

 

 

 

Web框架實現的最基礎的流程圖

相關文章
相關標籤/搜索