1、python项目环境搭建(以下说的都是windows环境)
首先需要安装python,本文说的是python35
1)安装虚拟环境:
pip install virtualenvwrapper-win
创建虚拟环境:
mkvirtualenv testvir -----基于默认python版本创建一个名为testvir的虚拟环境,并自动进入当前虚拟环境
mkvirtualenv -p python2.7 安装路径 testvir3 ----------基于python2.7创建一个名为testvir3的虚拟环境,并自动进入当前虚拟环境
常用命令记录下:
deactivate -----------------退出当前虚拟环境
workon -----------------查看当前所拥有的虚拟环境
workon testvir -----------进入testvir虚拟环境
pip list ------------------查看当前环境所安装的库
pip install requests -------安装requests库
pip uninstall requests ------卸载当前环境中的requests库
指定虚拟环境位置:
环境变量中添加 WORKON_HOME:EEvns
2)安装基本库方式
Django,restframework, markdown, django-filter, mysqlclient,pillow等
pip install djangorestframework
pip install -i https://pypi.douban.com/simple django ---通过豆瓣源安装
pip install -i https://pypi.douban.com/simple django==1.11.7 安装指定版本
有时候直接通过pip install会报各种奇葩错误,解决方法可以到python的万能库 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 里去下载对应包,来安装 :下载文件 cd到文件目录 运行 pip install 文件全名
2、创建Django项目
1)新建Django项目:
配置解释器
2)修改数据库配置(根据个人使用的数据库进行配置,这里使用的是mysql)
DATABASES ={
"default":{
"ENGINE":"django.db.backends.mysql",
"NAME":"数据库名称",
"USER":"数据库用户名",
"PASSWORD":"数据库密码",
"HOST":"IP",
"OPTIONS":{"init_command":"SET storage_engine=INNODB"} # 指定创建每个表时都使用INNODB引擎
}
}
3)整理目录结构
a)根目录下新建apps的package,用于承载创建的app -->python manage.py startapp name
b)根目录下新建extra_apps的package,用于存放一些第三方的包,如xadmin等,这样子不会安装到虚拟环境中,而是随着源码包打包,便于修改
c)将apps和extra_apps Mark Directory as Source Root
d)根目录下新建文件夹media用于存放文件 ,图片等
e)创建static文件夹,用于存放一些静态文件,如js等
f)根目录下新建templates文件夹,用于存放html等静态资源
g)将apps和extra_apps加到根目录搜索下:
在settings.py中:
import os
os.path.insert(0, BASE_DIR)
os.path.insert(0,os.path.join(BASE_DIR,"apps"))
os.path.insert(0, os.path.join(BASE_DIR,"extra_apps"))
h)将static及media加入根目录搜索下:
在settings.py文件中加入以下代码:
STATIC_URL='/static/'
STATICFILES_DIRS = (
os.join.path(BASE_DIR, 'static'),
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
4)将创建的app加入到settings.py中的INSTALLED_APPS中
5)如果用自定义UserProfile模块替代系统自带的User模块:
需要继承自AbstractUser(django.contrib.auth.models.AbstractUser)
并在settings.py中配置 AUTH_USER_MODEL = "users.UserProfile"