<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      靜態文件

      1.靜態文件
          不經常修改的文件,主要是針對html文件所使用到的各種資源
              css文件  js文件  img文件  第三方框架文件
              
          django針對靜態文件資源一般需要單獨開一個目錄存放
              static目錄
              該目錄下如果各類型的文件都多,那么我們還可以繼續創建目錄,就以文件類型作為目錄名稱
              
      2.資源訪問
          我們在地址欄中之所以可以輸入路由獲取對應的資源是因為我們程序員提前開設了資源接口
      3.靜態資源訪問
          默認情況下無法訪問,因為我們沒有提前開設靜態文件資源的訪問接口
      

      靜態文件相關配置

      在配置文件中加上這個
      STATICFILES_DIRS = [
          os.path.join(BASE_DIR, 'static')
      ]
      
      1.接口前綴
      STATIC_URL = '/static/'  # 訪問靜態文件資源的接口前綴
      STATICFILES_DIRS = [
          os.path.join(BASE_DIR, 'static')  
          # 存儲靜態文件資源的目錄名稱,如果有多個靜態文件資源目錄直接在下面添加就行了
      ]
      # 訪問靜態文件資源會先驗證接口前綴,接口前綴正確后,會拿著后面的路徑依次去列表中自上而下查找
      
      2.接口前綴動態匹配
      {% load static %}  # django提供的語法
      <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
      <script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>
      # 這樣寫完以后無論用戶請求什么樣的路由,它都可以動態的轉為我們配置文件中填寫的接口前綴
      

      form表單

      1.action  # 控制數據提交的地址
          1.action=""  # 數據默認提交給當前頁面所在的地址
          2.action="https://www.baidu.com/"  # 填寫完整地址指定提交
          3.action="/index/"  # 向當前服務端的index地址提交
          
      2.method  # 控制數據提交的方法
          默認是get  # 向服務器要數據,也可以攜帶一些額外的要求
              額外攜帶數據的方式: URL?aaa=bbb&ccc=ddd
              問號后面攜帶的數據有大小限制(2KB),而且不能攜帶敏感數據
          可以改為post  # 向服務提交數據
              攜帶額外數據的方式:請求體
              請求體攜帶數據安全性較高而且沒有大小限制
              
      目前我們發送post請求需要注釋掉配置文件中的某一行
      MIDDLEWARE = [
          'django.middleware.security.SecurityMiddleware',
          'django.contrib.sessions.middleware.SessionMiddleware',
          'django.middleware.common.CommonMiddleware',
          # 'django.middleware.csrf.CsrfViewMiddleware',
          'django.contrib.auth.middleware.AuthenticationMiddleware',
          'django.contrib.messages.middleware.MessageMiddleware',
          'django.middleware.clickjacking.XFrameOptionsMiddleware',
      ]
      

      request對象

      1.獲取請求方式
          request.method  # 獲取請求方式,結果是純大寫的的字符串數據
          	GET/POST
      2.獲取請求方式中攜帶的數據
          request.POST  # 獲取post請求的請求體中攜帶的數據,值為一個列表
              request.POST.get()  # 獲取值列表中最后一個數據
              request.POST.getlist()  # 獲取整個值列表數據
          request.GET  # 獲取網址問號后面攜帶的數據,值也是一個列表
              request.GET.get()  # 獲取值列表中最后一個數據
              request.GET.getlist()  # 獲取整個值列表數據
          
      '''
      在視圖函數中針對不同的請求的代碼編寫套路
          if request.method == 'POST':
              return HttpResponse()
          return HttpResponse()
      '''
      

      pycharm連接數據庫

      pycharm中連接數據庫在界面左側的Database中點擊加號,選擇Data Source(鼠標不要點擊,懸浮即可),在右側彈出的界面中選擇MYSQL然后連接即可
      注意:pycharm初次連接數據庫需要下載對應的驅動
      

      django連接數據庫

      django會自帶一個小型數據庫sqlite3,它的功能較少,主要用于本地測試,實際項目中都會替換掉它
      
      sqlite3默認配置
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.sqlite3',
              'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
          }
      }
      
      1.修改配置文件
      DATABASES = {
          'default': {
                  'ENGINE': 'django.db.backends.mysql',
                  'NAME': 'day51',
                  'HOST': '127.0.0.1',
                  'PORT': 3306,
                  'USER': 'root',
                  'PASSWORD': '123',
                  'CHARSET': 'utf8'
              }
      }
      2.需要指定模塊
          django1.X版本需要在項目目錄下或者app目錄下的__init__.py中編寫代碼
              import pymysql
              pumysql.install_as_MYSQLdb()
          django2.X版本及以上都可以直接通過下載mysqlclient模塊解決
      

      ORM

      簡介

      ORM:對象關系映射
          能夠讓不會SQL語句的python程序員使用python面向對象的語法來操作數據庫
      
      映射關系
      類           ==> 表
      對象         ==> 一條條的數據
      對象點名字    ==> 獲取字段對應的值
      
      # ORM由于高度封裝了SQL,所以有時候效率較低,我們需要自己寫SQL
      

      基本操作

      1.在models.py中編寫模型類
          class GirlsInfo(models.Model):
              id = models.AutoField(primary_key=True)  # id int primary key auto_increment
              name = models.CharField(max_length=32)  # name varchar(32)
              age = models.IntegerField()  # age int
              
      2.執行數據庫遷移相關命令
          python38 manage.py makemigrations  # 講操作記錄到小本本上(migrations目錄下的一個文件)
          python38 manage.py migrate  # 講操作同步到數據庫上
          
          # 每次在models.py中修改了與數據庫相關的代碼,都需要再次執行上述命令
      

      基本語句

      from app01 import models
      models.類名.objects.create()  # 創建數據
      models.類名.objects.filter()  
      # 查詢數據,結果為一個列表,里面是一個數據對象,需要通過點的方式獲取數據
      models.類名.objects.update()  # 修改數據,可以和filter搭配使用,單獨使用表示修改該字段的全部
      models.類名.objects.delete()  # 刪除數據,需要和filter搭配使用,無法單獨使用
      
      posted on 2023-04-08 21:30  zyg111  閱讀(48)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中国猛少妇色xxxxx| 人妻少妇精品中文字幕| 日本一道一区二区视频| 香蕉EEWW99国产精选免费| 喜德县| 色欧美片视频在线观看| 国产线播放免费人成视频播放| 亚洲成在人线在线播放无码| 国产欧美日韩另类精彩视频| 欧美日韩在线视频| 亚洲无人区码一二三四区| 日韩高清亚洲日韩精品一区二区| 99久久国产成人免费网站| 亚洲一区在线观看青青蜜臀| 伊人热热久久原色播放WWW| 国产精品无码无卡在线播放| 人妻av无码系列一区二区三区| 欧美在线观看www| 亚洲精品一区二区口爆| 欧美成人h精品网站| 久久婷婷五月综合色99啪ak| 亚洲国产av剧一区二区三区| 色AV专区无码影音先锋| 久久天天躁夜夜躁狠狠85| 国产熟睡乱子伦视频在线播放 | 欧美亚洲h在线一区二区| 边添小泬边狠狠躁视频| 精品国产女同疯狂摩擦2| 日韩一区二区三区精品区| 怡春院久久国语视频免费| 亚洲a片无码一区二区蜜桃| 亚洲成在人线av无码| 激情亚洲专区一区二区三区| 大胆欧美熟妇xxbbwwbw高潮了| 长腿校花无力呻吟娇喘的视频| 亚洲国产精品18久久久久久| 亚洲国产精品久久无人区| 日本中文字幕亚洲乱码| 中国少妇人妻xxxxx| 国产成人精彩在线视频50| 真实国产老熟女无套内射|