zoukankan      html  css  js  c++  java
  • 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:webluffyluffyapi>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:webluffyluffyapiluffyapi>cd apps
    
    (luffyapi) F:webluffyluffyapiluffyapiapps>python ../../manage.py startapp user
    
    (luffyapi) F:webluffyluffyapiluffyapiapps>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>
    
  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/surpass123/p/13325063.html
Copyright © 2011-2022 走看看