django 环境准备
pycharm创建项目
首先在pycharm中新建一个项目,location后的dj_v2作为项目的名称,虚拟环境一般在venv前面加项目名称,这里虚拟环境的文件夹名为dj_v2_venv。
创建好后打开终端,正常的情况显示如下:
命令行开头会有虚拟环境的名称,这里是dj_v2_venv,如果没有显示,建议关掉终端而后重新打开,如果还是没有,这里提供两种解决办法:
1.可能是该项目的interpreter设置错误,选择本项目的虚拟环境:
更改使用本项目路径下建立的虚拟环境。
2.更改pycharm引用的终端为cmd:
这里需要更改shell path为cmd.exe,改之前可能为shell,都会导致项目的terminal无法调用虚拟环境。
安装及配置django项目
在终端中输入命令安装django包:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django#清华镜像源
之后新建django项目
django-admin startproject project_name
之后建议将pycharm文件根目录设置为项目所在路径,即创建的project_name路径下,方便后续调用python manage.py等相关操作。(同时需要修改interpreter,在pycharm的settings中)
之后会发现pycharm左侧的文件夹路径中出现了新的文件夹。
在安装好的project中的settings.py中找到LANGUAGE_CODE处,将一下参数改成:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
创建APP
在终端中输入:(在此之前需要将路径根目录设置为项目目录(project_name))
python manage.py startapp app_temp
而后在项目目录中就出现了名为app_temp的app,此时在settings.py中的INSTALLED_APP中加入创建的app:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_temp',#加入APP名称
]
添加路由
在项目文件夹(我创建的是std_proj_temp)下名为urls.py(总路由)修改如下:
urlpatterns = [
path('admin/', admin.site.urls),
path('app_temp/', include('app_temp.urls')),#添加app路由,需要import下include方法
]
在APP的文件夹下创建视图函数(views.py);
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def hello(request):
return HttpResponse("<h2 style='color:green'>Hello World!</h2>")
而后在APP下创建名为urls.py的文件,作为子路由,将创建的视图函数添加进子路由中:
from django.urls import path
from app_temp.views import hello
urlpatterns = [
path('hello/', hello),
]
准备数据库
安装MySQL
https://dev.mysql.com/downloads/mysql/
点开网址,里面的下载项根据个人电脑以更新,这里以windows操作系统为例,选择zip archive版本的,mysql的安装相对而言复杂一些,建议参考其他博客进行安装以避免装错,安装好后打开sql的command line client 显示如下:
pycharm配置
打开pycharm,项目下的settings.py中找到字典DATABASES,修改如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_temp',#对应你的mysql中的数据库名称,需要打开sql的client创建
'HOST': 'localhost',#对应安装sql的地址
'PORT': 3306,#默认3306
'USER': 'root',
'PASSWORD': 'root'
}
}
这里需要打开mysql command line client进行数据库创建,创建的数据库名称要和上面python配置的DATABASES字典中的NAME保持一致,sql的client端执行:
create database db_temp;
此时在pycharm终端进行runserver会报错,没有安装python对应MySQL的包,因此终端执行:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
之后runserver依然会报错:
报错的原因是没有MySql下的mysqlclient,由于mysql在python2时期就已存在,MySQLclient对应的是python2时期的版本,因此对于此历史遗留问题,我们不执行安装此包,在项目目录下:
找到__init__.py文件,而后添加:
import pymysql
pymysql.version_info = (1,1,1,'final',0)
pymysql.install_as_MySQLdb()
这里的version_info=1.1.1是我随便写的,所以重新runserver依然会报错,报错如下:
意思是说mysqlclient需要1.4.3以上的版本,你有1.4.6,好的,然后我们把
pymysql.version_info = (1,1,1,'final',0)
改成:
pymysql.version_info = (1,4,6,'final',0)
重新runserver:
如果没有报错,至此django的项目以及数据库基本配置完毕,后期只需新建app,创建视图函数,添加路由,创建models,以及前端的js和css即可。