django项目环境搭建
本文转载自: https://blog.csdn.net/xiaogeldx/article/details/89038299
在码云平台创建项目
版本控制的种类
- 主要使用github(最主流)
- 国内访问速度慢
- 托管私有项目收费
- 国内一般使用码云gitee
- 国内访问速度快
- 托管私有项目免费
- 在公司中使用gitlab或者svn来搭建
创建步骤
- 打开码云,注册登录
- 创建public工程
- 新建项目
- 生成ssh公钥(一直回车或选y覆盖)
- 克隆项目到本地
- 复制SSH链接
- 克隆项目
- 复制SSH链接
创建虚拟环境
查询系统本系统中安装的Python版本
ls -l /usr/bin/python*
创建虚拟环境时需要指定Python版本
virtualenv -p python3.6 django_web
进入虚拟环境,安装django(目前最新版本2.2,此次安装2.1.7版本)
source activate
pip install django==2.1.7
pycharm配置(django)
- 复制粘贴以前的贴,步骤一样,图片和内容与本次项目不符
- 配置解释器(默认已在云服务器创建好django项目:stu_sys)
创建项目-Create New Project
Location位置创建本地的项目文件夹
选择Interpreter的最右边的...,配置解释器
- 配置远程服务器
填云服务器的ip,用户名和密码
选择远程的解释器
在Remote project location选择远程的项目文件夹,点创建
配置代码同步,File的Settings的Deployment,填上ip,端口号,用户名,密码,然后Test Connection连接测试,成功后选择Root path:远程项目的文件夹(或者把Mappings的Deployment path的地址剪切过来)
Mappings的Deployment path的路径为/
Deployment的Options的Upload changed选Always,一直自动上传
选择编辑器右上角的Edit Configuration的按钮
点击添加Django server
改Host为0.0.0.0,表示的是允许连接服务器的IP #方便调试,使用什么ip都能访问到
点击Environment Variables项后面的…
将DJANGO_SETTINGS_MODULE添加到Name,将项目名.settings添加到Value
在apply按钮上有可能fix有红灯标志,点进去
把Enable Django Support勾选上,Django project root行点文件夹标志,选上根目录,Settings行点文件夹标志,选上根目录下的settings.py文件
- 配置远程服务器
git和github
git安装配置
Linux安装
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
apt-get install git
git --version #查看版本
配置用户
git config --global user.name 用户名
git config --global user.email 邮箱
查看配置信息
git config --list
github
git连接github,本地git仓库和github仓库之间的传输是通过SSH加密的
使用以下命令生成SSH Key:
ssh-keygen -t rsa -C "邮箱" #注意有引号#邮箱是github注册的邮箱
一直回车就行,成功的话会在~/下生成.ssh文件夹,进去,打开 id_rsa.pub,复制里面的 key
cd ~
cd .ssh
cat id_rsa.pub #复制key
在github上,选择Settings
选SSH and GPG keys,选New SSH key
Title随意填,Key把前面复制的key粘贴到这里
为了验证是否成功用如下代码
ssh -T git@github.com #成功会显示github名
选择下图中的New repository
在Repository Name中填github中的项目名,其他默认
创建一个和github的项目名相同的git本地仓库的文件夹,然后进入文件夹
#下面这些代码是复制图中的第二种方法的代码
echo "# hahaah" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:xiaogeldx/hahaah.git
git push -u origin master
pycharm配置git和github
- File-Settings-Version Control-Git,Path to Git executable,选择git包的路径
- GitHub,登录github账号
- VCS-Checkout from Version Control,url添加github的远程仓库
- 先在命令行创建项目,然后再设置pycharm代码同步
项目创建和配置
- 新建项目的命令:django-admin startproject projectname
开发服务器
- 将settings.py文件中的ALLOWED_HOSTS = 改为ALLOWED_HOSTS = ["*"]
- Linux虚拟机网络连接方式是nat端口转发时,需要设置http服务8000端口的转发
开启服务器
- 方式一(不常用):
命令行模式:
在项目的根目录下执行命令
python manage.py runserver 0.0.0.0:8000 #0.0.0.0可以简写为0 - 方式二(常用):
- 选择编辑器右上角的Edit Configuration的按钮
- 点击添加Django server
- 改Host为0.0.0.0,表示的是允许连接服务器的IP #方便调试,使用什么ip都能访问到
- 点击Environment Variables项后面的...
- 将DJANGO_SETTINGS_MODULE添加到Name,将项目名.settings添加到Value
- 在apply按钮上有可能fix有红灯标志,点进去,把Enable Django Support勾选上,Django project root行点文件夹标志,选上根目录,Settings行点文件夹标志,选上根目录下的settings.py文件
访问服务器
- 当用其中的一种方式开启了服务后,打开浏览器
- 在地址栏输入IP地址和服务的端口号
- 可以看到服务正在运行的页面
- 需要注意的点:
- IP:
- 在终端用命令ifconfig查看IP,注意网络连接方式
- 虚拟机的端口转发时使用的是127.0.0.1回环地址
- port
- 远程连接ssh服务的端口号是22
- http服务端口号8000/8080
- MySQL服务的端口号3306
- IP:
其他配置
修改 settings
文件
配置模板文件
- 在项目根目录新建一个templates文件夹,用于存放模版文件。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
# 将函数内置到模板中 https://docs.djangoproject.com/en/2.1/topics/templates/
'builtins': ['django.templatetags.static'],
},
},
]
配置mysql数据库
- 连接虚拟机中的mysql,使用root用户登录:
mysql -uroot -p
- 创建数据库
mysql> CREATE DATABASE web_prv CHARSET=utf8;
Query OK, 0 rows affected (0.13 sec)
- 创建用户
mysql> CREATE USER root IDENTIFIED BY 'xxxx';
Query OK, 0 rows affected (0.00 sec)
- 用户授权
mysql> GRANT ALL PRIVILEGES ON web_prv.* TO 'root'@'%';
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.20 sec)
- 加载数据库配置
- 方法一:直接在settings.py文件中添加数据库配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'web_prv', # 数据库名称
'USER': 'root', # 数据库登录用户名
'PASSWORD': 'xxxx', # 密码
'HOST': 'x.x.x.x', # 数据库主机IP,如保持默认,则为127.0.0.1
'PORT': 3306, # 数据库端口号,如保持默认,则为3306
}
}
- 方法二:将数据库配置信息存到一个文件中,在settings.py文件中将其引入(推荐)
- 新建数据库配置文件my.cnf(名字随意选择)
- 在settings.py文件中引入my.cnf文件
DATABASES = {
# 方法二:
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': 'utils/dbs/my.cnf',
},
}
}
在项目根目录新建utils文件夹,用于存放一些配置,在utils文件夹下新建dbs文件夹(存放数据库配置),在dbs文件夹下新建my.cnf文件
my.cnf
[client]
database = web_prv
user = root
password = xxxx
host = x.x.x.x
post = 3306
default-character-set = utf8
安装pymysql,并且需要在settings.py文件所在包中的
__init__.py
中导入pymysql
pip install -i https://pypi.douban.com/simple pymysql
配置redis缓存
- 用于存放用户session信息、短信验证码以及图片验证码信息等。
# 在虚拟机中安装django-redis
pip install -i https://pypi.douban.com/simple django-redis
# 在settings.py文件中指定redis配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://106.13.131.178:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
#这样的库可以建多个,除了名字和路径不同,其他一样
# "verity_codes": {
# "BACKEND": "django_redis.cache.RedisCache",
# "LOCATION": "redis://106.13.131.178:6379/1",
# "OPTIONS": {
# "CLIENT_CLASS": "django_redis.client.DefaultClient",
# }
# }
}
配置日志器
用于记录系统运行过程中的各种日志信息
在项目根目录中创建一个logs文件夹,用于存放日志文件,并在文件夹下新建__init__.py文件,使其变成Python的包用于导入
新建web_prv.log文件
#在setting.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(BASE_DIR, "logs/web_prv.log"), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': {
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'],
'propagate': True,
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
时区配置
# 修改语言
LANGUAGE_CODE = 'zh-hans'
# 修改时区
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
# utc 时间
USE_TZ = True
修改静态文件配置
- 在项目根目录中创建一个static目录,用于存放静态文件(css、js、image、font等)
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'), # 用于存放静态文件
]
创建应用
- 本项目主要由4个模块组成,分别为新闻文章模块、课程视频播放模块、文档下载模块、用户管理模块等
- 在项目根目录下创建一个apps目录用于存放各个子应用
# 在Ubuntu中,cd到项目根目录
cd apps
python manage.py startapp news1
python manage.py startapp course
python manage.py startapp doc
python manage.py startapp users
- 或者用这种方法也可以创建app
pycharm的Tools-->Run manage.py Task...
startapp appname
- 创建python的包apps,将创建的app拖到apps中
- 在settings.py文件中,加入如下配置
import sys
# 创建应用之后,把apps目录加入到sys.path中
#使apps可以进行查找
sys.path.insert(0, BASE_DIR)
sys.path.insert(1, os.path.join(BASE_DIR, 'apps'))
- 分别在apps文件夹和项目根目录文件夹上右击,加入到Sources Root根中,优化导入路径。
- 将应用加入到INSTALLED_APPS列表中
INSTALLED_APPS = [
# ...
'users', # 将应用加入到INSTALLED_APPS列表中
'course',
'doc',
'news',
]
- 将apps设置为可查找
- apps右键-->Mark Directory as Sources Root
将项目推送到码云
- 在虚拟机中配置代码推送人身份信息(填写自己的名字和邮箱地址)
# 填写你的邮箱地址
(tk_dj) pyvip@VIP:~/TK19_3/tk_dj/.git$ git config --global user.email "xxx@qq.com"
# 填写你的用户名
(tk_dj) pyvip@VIP:~/TK19_3/tk_dj/.git$ git config --global user.name "xiaogeldx"
- 将代码推送至本地仓库(虚拟机中)
# 工作区添加到暂存区
(tk_dj) pyvip@VIP:~/TK19_3/tk_dj$ git add .
# 暂存区提交到仓库区,-m为添加注释信息
(tk_dj) pyvip@VIP:~/TK19_3/tk_dj$ git commit -m "项目初始化,完成settings中数据库、模板、时区、静态目录指定等。"
- 将代码推送至远程仓库(码云上)
# 将代码推送到远程仓库
(tk_dj) pyvip@VIP:~/TK19_3/tk_dj$ git push
- 码云中就出现了,你的本次写的代码
django项目环境搭建的更多相关文章
- 二.django项目环境搭建
Ⅰ.web框架介绍 1.socket 服务端 1)客户端(手机中各种app.浏览器)是用来与服务端(网站的服务器程序)进行交互的 2)服务端类似发电厂,客户端类似电器,socket类似插座,互联网的数 ...
- Django 项目环境搭建
环境 mkvirtualenv -p python3.6 mytest # 创建虚拟环境 workon mytest # 进入虚拟环境 # 按照基础环境依赖 pip install django==1 ...
- django项目环境搭建备忘
由于使用python3,所以尽量为每个项目配置虚拟环境来管理各个项目的=. 新建一个项目文件夹,进入该路径 python3 -m venv ll_env 然后激活虚拟环境 source ll_env/ ...
- Django项目: 项目环境搭建 ---- 一、创建django项目
项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/pytho ...
- 3/16 Django框架 环境搭建
3/16 Django框架 环境搭建 环境搭建 Python解释器 Python代码通过Python解释器去执行. 编程语言 机器语言---汇编语言(助记符)---高级语言 解释型语言:解释器将代码一 ...
- django开发环境搭建(参考流程)
django开发环境搭建(参考流程) 2013-08-08 01:09:06 分类: LINUX 原文地址:django开发环境搭建(参考流程) 作者:bailiangcn 对于一个初学者,在实际的开 ...
- vue项目环境搭建与组件介绍
Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...
- 第一周博客之二---OA项目环境搭建及开发包部署
OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...
- mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
一.mac OS X下Java项目环境搭建 因为某些原因新入手了台最新版的MacBook Pro,意味着今天要花一天时间安装各种软件以及项目环境搭建╮(╯▽╰)╭ 项目环境搭建步骤: 1.安装jdk ...
随机推荐
- filter 过滤器 禁止浏览器缓存
public class BrowserNoCacheFilter implements Filter { public void init(FilterConfig filterconfig) th ...
- 欢迎访问我的独立博客 tracefact.net (2019.1.30)
欢迎访问我的独立博客 tracefact.net 长期以来,我都同时维护着两个博客,博客园和 tracefact.net,感觉有点分散精力,所以博客园以后不再每篇文章都同步更新了. 我会挑个别比较好的 ...
- 老桂.net core系列课程
为了支持"首届dnc开源峰会"(dncNew.com)顺利举办,本人<.net core系列课程>进行一波优惠,每个课程优惠在立即购买上方,领取现金券即可.课程地址为腾 ...
- 依赖注入[7]: .NET Core DI框架[服务注册]
包含服务注册信息的IServiceCollection对象最终被用来创建作为DI容器的IServiceProvider对象.服务注册就是创建出现相应的ServiceDescriptor对象并将其添加到 ...
- java中级或者高级面试题分享
一. 基础知识: 1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList:HashSet,TreeSet): 2)HashMap的底层实现,之后会问C ...
- input type=passoord 密码框的明密文(显示和隐藏) 显示
最近在写一个新的项目,从头开始写,所以就要从注册登录开始做起.以前写登录注册模块的时候,无外乎给input框一个type=”password”就可以了,近期因为要涉及到显示隐藏状态的切换. 样式代码如 ...
- 【RL-TCPnet网络教程】第31章 Telnet远程登录基础知识
第31章 Telnet远程登录基础知识 本章节为大家讲解Telnet (Teletype Network) 的基础知识,方便后面章节的实战操作. (本章的知识点主要整理自网络) 31.1 ...
- [Swift]LeetCode17. 电话号码的字母组合 | Letter Combinations of a Phone Number
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that th ...
- [Swift]LeetCode39. 组合总和 | Combination Sum
Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), fin ...
- [SQL]LeetCode197. 上升的温度 | Rising Temperature
SQL架构 Create table If Not Exists Weather (Id int, RecordDate date, Temperature int) Truncate table W ...