django项目环境搭建
查看linux版本
查看linux版本指令:lsb_release -a
本次开发使用ubuntu 16.04,老师建议使用ubuntu 18
创建虚拟环境
创建新的python虚拟环境:mkvitualenv -p /usr/bin/python3 envname
进入虚拟环境:workon envname
退出虚拟环境:deactivate
安装django
进去虚拟环境后
安装django:pip install django==指定版本号,不填默认安装最新
最好安装2.1.7,2.2版本对于mysql的支持需要安装依赖包
查看django版本:python -m django --version
另一种查看django的指令:pip freeze
初始化git仓库和简单操作
安装git:sudo apt-get install git
查看git版本:git --version
创建文件夹作为git仓库:mkdir 文件夹名称
进入文件夹进行git初始化:git init
初始化后产生一个.git的隐藏文件可以通过 ll 或者 ls -al 查看
在仓库文件夹中配置一个用户到 .git/config 文件中
仓库根目录中配置用户信息:git config user.name ‘用户名’
配置用户邮箱 git config user.email ‘用户邮箱’
根目录创建一个py文件:vim test100.py
查看git仓库状态:git status
(django_item) ubuntu@VM-0-17-ubuntu:~/mygit$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
test100.py
nothing added to commit but untracked files present (use "git add" to track)
将仓库文件从工作区提交到git跟踪文件中:git add 文件名 git add .为添加当前目录所有文件
执行完后再查看仓库状态:
(django_item) ubuntu@VM-0-17-ubuntu:~/mygit$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test100.py
加入跟踪后可以将文件提交到暂存区:git commit -m ‘填写提交的描述信息’ 1
提交到暂存区后可以修改test100.py文件,修改后查看git状态,记录了文件被修改
(django_item) ubuntu@VM-0-17-ubuntu:~/mygit$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test100.py
no changes added to commit (use "git add" and/or "git commit -a")
在暂存区文件可以撤回对文件的修改:git checkout 文件名
将文件删除:git rm 文件名
码云创建项目和本地同步
第一步:码云创建一个仓库
第二步:本地创建公私钥
在linux中创建ssh公钥:ssh-keygen 一路回车创建好
创建的ssh目录在执行该命令的目录
创建好的公钥文件路径:cd .ssh
ubuntu@VM-0-17-ubuntu:~$ cd .ssh
ubuntu@VM-0-17-ubuntu:~/.ssh$ ls
authorized_keys config id_rsa id_rsa.pub
第三步:将本地的id_rsa.pub公钥内容保存到个人gitee账户中:
设置–>安全设置–>ssh公钥
第四步:复制ssh克隆路径,在克隆到本地
克隆gitee上的仓库:
git clone git@gitee.com:lindanchun/my_website.git
django项目创建和配置
第一步:使用pycharm创建django项目
需要注意的地方:
1.解释器需要选择到创建的虚拟环境的解释器
2.映射目录为gitee仓库克隆到本地的目录,项目也创建在里面
3.配置django server启动器,HOST修改为0.0.0.0
4.在主app中的settings修改:ALLOWED_HOSTS = [’*’]
第二步:创建数据库连接
1.使用root登录数据库,创建一个新的数据库
mysql> create database my_website charset=utf8;
Query OK, 1 row affected (0.01 sec)
mysql>
2.创建一个用户,并授权操作该数据库:
创建用户:
create user 用户名 identified by ‘密码’;
授权;
grant all on my_website.* to ’用户名‘@‘%’;
3.在主app的settings文件配置好数据库信息:
3.1 由于项目文件会提交到gitee,导致数据库信息泄露,所以在主目录下新建过一个utils文件夹,下面再创建一个dbs文件夹,新建一个关于数据库配置的mydb.cnf文件,再将该文件记录到根目录的.gitignore文件中,那么该数据库连接信息就不会提交到gitee上。
3.2 配置settings的数据库连接
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTION': {
'read_default_file' : 'utils/dbs/mydb.cnf',
},
}
}
第三步:自定义一个日志器
1.在settings文件中配置日志器的信息
未解决问题,新增一个logs文佳佳,新增一个xiaoming.log的日志文件,pycharm提示未知的文件类型
第四步:静态文件的配置和其他路径配置
1.在项目根目录新建一个static文件夹,再创建一个js和css和其他媒体文件的文件夹。
2.在settings文件配置静态文件的路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
3.在settings文件里中,将项目目录和项目apps目录增加到sys.path中:
import sys
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os,path.join(BASE_DIR, 'apps')) # 将apps路径加入系统路径的用处在于后续导apps下的包时,可以直接省略apps,比如from apps.users 可以写成from users
第五步:将项目同步到码云
空白文件夹在pycharm中是不能同步的,选择空白文件进行上传会报错,服务器的空白文件夹也不会被下载
1.将项目文件加入文件跟踪:git add .
2.将项目文件提交到暂存区:git commit -m ‘提交说明’
3.将暂存区文件提交到gitee上:git push 还要输入gitee账号和密码
第六步:redis的安装
1.安装redis:
pip install redis==3.2
pip install django-redis==4.10
项目启动中遇到的问题:
1.数据连接信息没有生效,检查settings文件和utils/dbs/mydb.cnf关于数据库连接的配置信息
pymysql.err.OperationalError: (1045, "Access denied for user 'ubuntu'@'localhost' (using password: NO)")
django.db.utils.OperationalError: (1045, "Access denied for user 'ubuntu'@'localhost' (using password: NO)")
2.js文件提示红色下划线的警告,选择pycharm的file–>settings–>language&framwork,修改javascript的版本为6.0
描述信息为中文会报错 ↩︎