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

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

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

      1. 項目開發基礎概念

      1.1 企業的web項目類型

      1. 商城

        1.1 B2C 直銷商城 商家與會員直接交易 ( Business To Customer )

        1.2 B2B 批發商城 商家與商家直接交易

        1.3 B2B2C 購物平臺 商家和會員在另一個商家提供的平臺上面進行交易

        1.4 C2B 定制商城 會員向商家發起定制商品的需求,商家去完成。

        1.5 O2O 線上線下交易平臺

        1.6 C2C 二手交易平臺

      2. 門戶網站[企業站和門戶站]

      3. 社交網絡

      4. 資訊論壇

      5. 內部系統

      6. 個人博客

      7. 內容收費站

      3. 環境搭建

      3.1 創建虛擬環境

      mkvirtualenv luffy
      
      or
      
      mkvirtualenv luffy -p python3 # 指定python版本

       

      # 其他相關命令
      
      創建虛擬環境:               mkvirtualenv 虛擬環境名稱
      創建虛擬環境(指定python版本): mkvirtualenv -p python3 虛擬環境名稱
      查看所有虛擬環境:            workon+2次tab鍵
      使用虛擬環境:               workon 虛擬環境名稱
      退出虛擬環境:               deactivate
      刪除虛擬環境(必須先退出虛擬環境內部才能刪除當前虛擬環境):
                                     rmvirtualenv 虛擬環境名稱
          
      其他相關命令:
      查看虛擬環境中安裝的包:              pip freeze  或者 pip list
      收集當前環境中安裝的包及其版本:       pip freeze > requirements.txt
      在部署項目的服務器中安裝項目使用的模塊: pip install -r requirements.txt

      3.3 依賴包安裝

      pip install django
      
      pip install djangorestframework
      
      pip install PymySQL
      
      pip install Pillow
      
      pip install django-redis

      4. 搭建項目

      4.1 創建項目

      django-admin startproject luffy

      4.3 打開項目

      在pycharm中打開項目

      settings里面添加虛擬環境,啟動django,設置runserver

       

      4.2 調整目錄

      ├── docs/          # 項目相關資料保存目錄
      ├── logs/          # 項目運行時/開發時日志目錄
      ├── manage.py
      ├── luffy/         # 項目主應用,開發時的代碼保存
      │   ├── apps/      # 開發者的代碼保存目錄,以模塊[子應用]為目錄保存
      │   ├── libs/      # 第三方類庫的保存目錄[第三方組件、模塊]
      │   ├── settings/
      │       ├── dev.py   # 項目開發時的本地配置
      │       ├── prop.py  # 項目上線時的運行配置
      │   ├── urls.py    # 總路由
      │   ├── utils/     # 多個模塊[子應用]的公共函數類庫[自己開發的組件]
      └── scripts/       # 保存項目運營時的腳本文件

       

      4.3 創建代碼版本

      cd進入到自己希望存儲代碼的目錄路徑,并創建本地倉庫.git

       新創建的本地倉庫.git是個空倉庫

      cd 目錄路徑
      git init

      4.3.1 配置用戶名和郵箱

      git config --global user.name "拾玥"
      git config --global user.email "724979830@qq.com"

      4.4 在git平臺創建工程

      創建私有倉庫

       2)克隆項目到本地

      git clone https://gitee.com/shiony/luffy.git

      # 注意,如果當前目錄下出現git倉庫同名目錄時,會克隆失敗。

      注意:
      我們當前項目不需要這個步驟
      這個步驟是 當以后我們進入公司里面,參與人家已經在做的項目時,別人已經有倉庫了,但是我們是新人加入項目中的,那么我們不需要在自己本地進行git init,直接git clone 復制別人的倉庫代碼

       

       git提交

      git add 代碼目錄   # 添加代碼到上傳隊列
      git status        # 查看當前項目的版本狀態
      git commit -m '添加項目代碼'  # 提交代碼到本地倉庫, -m 表示本次提交的描述

      推送到遠端

      git push origin dev:dev

      如果推送代碼,出現以下提示: git pull ....,則表示當前本地的代碼和線上的代碼版本不同.

      1. 把線上的代碼執行以下命令,拉取到本地,進行同步
      git pull
      
      2. 根據提示,移除多余的沖突的文件,也可以刪除.
      完成這些步驟以后,再次add,commit,push即可.

      接下來,我們就把上面創建好的本地項目提交到gitee碼云上面

      # .表示當前目錄下所有的文件或目錄提交到上傳隊列[上傳隊列也叫"暫存區"]
      git add .
      
      # 把本地上傳隊列的代碼提交到本地倉庫
      git commit -m "項目初始化搭建"
      
      # 給本地的git版本控制軟件設置項目的遠程倉庫地址
      git remote add origin https://gitee.com/mooluo/luffyproject.git
      
      # 提交代碼給遠程倉庫
      git push -u origin master

      # 輸入賬號,密碼
      擴展:
      1. 通過 git status 可以查看當前項目的代碼版本狀態
      2. 通過 git reflog 可以查看代碼版本日志[簡單格式]
      3. 通過 git log    可以查看代碼版本日志[詳細格式]

      上面雖然成功移交了代碼版本,但是一些不需要的文件也被提交上去了。

      所以,我們針對一些不需要的文件,可以選擇從代碼版本中刪除,并且使用.gitignore把這些垃圾文件過濾掉。

      git rm 文件  # 刪除單個文件
      git rm -rf 目錄  # 遞歸刪除目錄
      
      # 以下操作建議通過ubuntu的終端來完成,不要使用pycharm提供,否則刪除.idea還會繼續生成。
      git rm -rf .idea
      git rm db.sqlite3
      # 注意,上面的操作只是從項目的源代碼中刪除,但是git是不知情的,所以我們需要同步。
      git add .
      git commit -m "刪除不必要的文件或目錄"
      git push -u origin master

      使用.gitignore把一些垃圾文件過濾掉。

      vim .gitignore
      
      ./idea
      ./idea/*
      ./git
      ./db.sqlite3

       

      4.6 日志配置

      在settings/dev.py文件中追加如下配置

      # 日志配置
      LOGGING = {
          'version': 1,
          'disable_existing_loggers': False,
          'formatters': {
              'verbose': {
                  'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
              },
              'simple': {
                  'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
              },
          },
          'filters': {
              'require_debug_true': {
                  '()': 'django.utils.log.RequireDebugTrue',
              },
          },
          'handlers': {
              'console': {
                  'level': 'DEBUG',
                  'filters': ['require_debug_true'],
                  'class': 'logging.StreamHandler',
                  'formatter': 'simple'
              },
              'file': {
                  'level': 'INFO',
                  'class': 'logging.handlers.RotatingFileHandler',
                  # 日志位置,日志文件名,日志保存目錄必須手動創建
                  'filename': os.path.join(os.path.dirname(BASE_DIR), "logs/luffy.log"),
                  # 日志文件的最大值,這里我們設置300M
                  'maxBytes': 300 * 1024 * 1024,
                  # 日志文件的數量,設置最大日志數量為10
                  'backupCount': 10,
                  # 日志格式:詳細格式
                  'formatter': 'verbose'
              },
          },
          # 日志對象
          'loggers': {
              'luffy': {
                  'handlers': ['console', 'file'],
                  'propagate': True, # 是否讓日志信息繼續冒泡給其他的日志處理系統
              },
          }
      }

       

      4.5 異常處理

      新建utils/exceptions.py

      from rest_framework.views import exception_handler
      
      from django.db import DatabaseError
      from rest_framework.response import Response
      from rest_framework import status
      
      import logging
      logger = logging.getLogger('luffy')
      
      
      def custom_exception_handler(exc, context):
          """
          自定義異常處理
          :param exc: 異常類
          :param context: 拋出異常的上下文
          :return: Response響應對象
          """
          # 調用drf框架原生的異常處理方法
          response = exception_handler(exc, context)
      
          if response is None:
              view = context['view']
              if isinstance(exc, DatabaseError):
                  # 數據庫異常
                  logger.error('[%s] %s' % (view, exc))
                  response = Response({'message': '服務器內部錯誤'}, status=status.HTTP_507_INSUFFICIENT_STORAGE)
      
          return response

      settings.py配置文件中添加

      REST_FRAMEWORK = {
          # 異常處理
          'EXCEPTION_HANDLER': 'luffy.utils.exceptions.custom_exception_handler',
      }

       

      4.7 創建數據庫

      create database luffycity default charset=utf8;

      為當前項目創建數據庫用戶[這個用戶只能看到這個數據庫

      create user luffy_user identified by 'luffy';
      grant all privileges on luffycity.* to 'luffy_user'@'%';
      flush privileges;

      4.8 配置數據庫連接

      打開settings/dev.py文件,并配置

      DATABASES = {
          "default": {
              "ENGINE": "django.db.backends.mysql",
              "HOST": "127.0.0.1",
              "PORT": 3306,
              "USER": "luffy_user",
              "PASSWORD": "luffy",
              "NAME": "luffycity",
          }
      }

      在項目主模塊的 __init__.py中導入pymysql

      import pymysql
      
      pymysql.install_as_MySQLdb()

       

       

       

       

      posted on 2019-05-09 21:04  拾玥大熊  閱讀(125)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 日本一道一区二区视频| 在线精品国精品国产不卡| 国产不卡精品一区二区三区| 国产激情第一区二区三区| 九九热精品在线视频免费| 国产成人啪精品午夜网站| 人妻内射一区二区在线视频| 国产精品99一区二区三区| 夜夜添狠狠添高潮出水| 日本熟妇XXXX潮喷视频| 蜜臀av一区二区国产在线| 亚洲精品无amm毛片| 欧美精品人人做人人爱视频| 乐都县| 乱色老熟妇一区二区三区 | 鲁一鲁一鲁一鲁一澡| 伊人精品无码av一区二区三区 | 龙泉市| 久久波多野结衣av| 亚洲精品三区二区一区一| 狠狠色婷婷久久综合频道日韩| 91一区二区三区蜜桃臀| 亚洲 日本 欧洲 欧美 视频| 蜜臀久久99精品久久久久久| 欧美中文亚洲v在线| 在线精品国产中文字幕| 永久天堂网 av手机版| 日本亚洲欧洲免费无线码| 日日橹狠狠爱欧美视频| 99久久婷婷国产综合精品青草漫画 | 亚洲狠狠爱一区二区三区| 综合色在线| 亚洲开心婷婷中文字幕| 亚洲一区二区精品偷拍| 人成午夜免费视频在线观看| 国产在线观看播放av| 性动态图无遮挡试看30秒| 日韩中文字幕有码午夜美女| 亚洲成a人在线播放www| 美女禁区a级全片免费观看| 五月天国产成人av免费观看|