1. 程式人生 > 實用技巧 >luffy專案環境搭建

luffy專案環境搭建

安裝虛擬環境的步驟

virtualenv下載與配置

pip install virtualenv
pip install virtualenvwrapper-win

WORKON_HOME的設定

效果測試

同步配置資訊

去python的安裝目錄下的Scripts資料夾雙擊virtualenvwrapper.bat檔案

linux下配置:

# 安裝 virtualenv
pip install virtualenv
pip install virtualenvwrapper

# 找到virtualenvwrapper.sh檔案
[root@alisurpass bin]# cp virtualenvwrapper.sh /usr/local/bin/

# 建立虛擬環境工作目錄
 mkdir -p ~/.virtualenvs

cd ~/.virtualenvs
vim .bashrc

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
source export WORKON_HOME=$HOME/.virtualenvs

source .bashrc

建立虛擬環境

mkvirtualenv -p python luffy

# 檢視所有的虛擬環境
workon

# 進入虛擬環境
workon luffy

# pip安裝包
(luffy) [root@alisurpass ~]# pip install django==2.2.14

(luffy) [root@alisurpass ~]# pip install pymysql

(luffy) [root@alisurpass ~]# pip install djangorestframework==3.11.0

(luffy) [root@alisurpass ~]# pip install djangorestframework-jwt==1.11.0

(luffy) [root@alisurpass ~]# pip install django-filter==2.3.0

pip換源

  • windows換源
# 國內常用的源
阿里源:https://mirrors.aliyun.com/pypi/simple
豆瓣源:https://pypi.douban.com/simple
清華源:https://pypi.tuna.tsinghua.edu.cn/simple

# 快速安裝包的命令使用
pip install -i https://mirrors.aliyun.com/pypi/simple pymysql(模組名)
  • linux換源
cd ~/
mkdir .pip
cd .pip
vim touch.conf

配置

[global]
index-url = http://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/
trusted-host =pypi.douban.com

基於虛擬環境建立後端專案

pycharm建立django專案

後臺專案目錄的調整

  • 建立專案執行儲存日誌資料夾(logs)
F:\web\luffy\luffyapi>mkidr logs

  • luffyapi包下建立apps的包

  • luffyapi包下建立libs( 放第三方類庫)

  • luffyapi包下建立settings資料夾
settings資料夾下包含兩套配置檔案,一個是專案開發階段(dev.py),另外一個是專案上線(或測試)階段(pro.py)

  • 將原來settings.py檔案中的配置資訊拷貝至dev.py
# 刪掉原有的settings.py檔案,啟動發現後會報錯

修改manage.py的配置

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.dev')

專案上線階段走的不是manage.py,而是uwsgi.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffyapi.settings.pro')
  • 修改dev.py配置檔案中的內容

國際化

  • 在根目錄下新建scripts資料夾
scripts下放置指令碼檔案

建立APP

(luffyapi) F:\web\luffy\luffyapi\luffyapi>cd apps

(luffyapi) F:\web\luffy\luffyapi\luffyapi\apps>python ../../manage.py startapp user

(luffyapi) F:\web\luffy\luffyapi\luffyapi\apps>python ../../manage.py startapp home

註冊APP

# 在dev.py檔案中將BASE_DIR加入環境變數

import os
import sys

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 將BASE_DIR加到系統的環境變數中
sys.path.insert(0, BASE_DIR)
# 將apps的路徑加入到系統環境變數中
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))

  • apps設定為Sources Root

匯入包不會飄紅,但是apps必須在環境變數中。

資料庫配置

  1. 建立資料庫luffyapi

    mysql> create database luffyapi;
    Query OK, 1 row affected (0.00 sec)
    
  2. 建立專案使用者

    # 檢視mysql資料庫中的使用者
    mysql> select user,host,password from mysql.user;
    # 建立使用者,並且授予相應資料庫的許可權
    grant all privileges on luffyapi.* to 'luffyapi'@'%' identified by 'surpass@123';
    grant all privileges on luffyapi.* to 'luffyapi'@'localhost' identified by 'surpass@123';
    # 重新整理一下許可權
    flush privileges;
    

    資料庫連線測試

  3. 修改dev.py配置檔案

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'luffyapi',
            'USER': 'luffyapi',
            'PASSWORD': 'surpass@123',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'CHARSET': 'utf8',
        }
    }
    
    # 後期可以將資料庫的配置資訊寫入到系統環境變數中
    password = sys.path.get('mysql_pass','123456')
    
    import pymysql  # 換成pymysql
    
    pymysql.install_as_MySQLdb()
    

    django2.0.7以上的版本需要改原始碼

    # 將base.py的第35行和第36行程式碼進行註釋
    # if version < (1, 3, 13):
    #     raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
    
    # 將perations.py的第146行的decode換成encode
    if query is not None:
        # query = query.decode(errors='replace')
        query = query.encode(errors='replace')
    return query
    

User表的配置

# 基於auth的user表,必須在執行資料庫遷移命令前操作

# 若出錯了,解決方案如下:
-把所有app下的遷移檔案,全刪除
-admin,auth app下的遷移檔案刪除
-刪庫(資料一定要匯出來),重新遷移  (自己嘗試一下)
  • 擴充套件user表
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    telephone = models.CharField(max_length=11,verbose_name='手機')
    icon = models.ImageField(upload_to='icon',default='icon/default.png',verbose_name='頭像')
    
# div.py中配置
AUTH_USER_MODEL = 'user.user'  # 應用名+表名
  • 配置media
# dev.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media') # 現在的media在luffyapi下的luffyapi中

# 總路由urls.py中
from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),
]

路飛前臺搭建

#1 安裝node,官網下載,一路下一步
    node -v
    v10.16.3
#2 安裝模組
	npm install 模組名 #npm比較慢,用淘寶的cnpm來替換npm
#3 npm install -g cnpm --registry=https://registry.npm.taobao.org   

#4 建立vue的工程(需要一個vue腳手架)
	cnpm install -g @vue/cli
    
#5 如果出問題執行如下,重新走3,4
	npm cache clean --force
    
#5 命令列下敲
	vue 就會有提示
# 6 建立vue專案
vue create luffycity
選Manually


#7 用pycharm開啟
	在terminal下敲:npm run serve
#8 配置pycharm
	

NO改成yes

前端目錄介紹

-public
    -favicon.ico
    -index.html    # 整個專案的單頁面

-src
    -assets        # 存放靜態檔案,js,css,image
    -components    # 小元件,頭部元件以及尾部元件
    -router        # 路由相關
    -store         # vuex相關,狀態管理器,臨時儲存資料的地方
    -views         # 頁面元件
    —App.vue       # 根元件
    -main.js       # 配置檔案(跟django的setting一樣)
    
#任何一個元件都有三部分
	<template>
    	#html相關
	</template>
    <style>
		# css相關
	</style>

    <script>
		# js相關
    </script>