pycharm搭建django项目

1.安装和升级pip

在终端输入

sudo apt-get install python3-pip
sudo pip3 install --upgrade pip

查看pip版本

pip --version
pip3 –version

2.创建django项目

打开pycharm,点击file->new project,新建个项目,选择安装的python3.7.1版本,勾选Inherit global site-packages(继承全局站点包),之后点击创建。生成新项目。

pycharm搭建django项目_第1张图片
用pip工具安装Django。在pycharm终端输入

sudo pip3 install Django

在创建的新项目文件夹终端输入命令,创建django项目

django-admin startproject django项目名
cd django项目名
django-admin startapp app名

在新建的django项目里,找到setting文件,INSTALLED_APPS中加入app名
pycharm搭建django项目_第2张图片
至此,django项目创建完毕

3.运行django项目

cd切换到项目根目录下
运行项目

python3 manage.py runserver

运行会报错,因为默认当前数据库使用的是自带的sqlite,如果想继续使用sqlite可以安装后重新编译python,以下是相关步骤,如果想使用mysql可以跳过下面两步
在终端输入

sudo apt install libsqlite3-dev

进入python3.7.1的解压后文件夹,右键进入终端,输入

./configure
sudo make
sudo make install

再次运行项目,不会报错

使用mysql需要进行以下步骤
在pycharm终端输入

sudo apt install libmysqlclient-dev
sudo pip3 install -U mysqlclient==1.4.6 -i https://mirrors.aliyun.com/pypi/simple/

修改django项目下的settings.py文件,把DATABASES改成以下内容

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库驱动
        'NAME': 'myxlctrl',  # 数据库名
        'USER': 'root',  # 用户名
        'PASSWORD': 'root',  # 密码,本机mysql数据库没有设置密码,故此处为空,此处应修改为自己的数据库密码
        'HOST': 'x.x.x.x',  # 主机ip
        'PORT': '3306'  # 数据库端口号
    }
}

数据库必须为已经存在的
运行项目

python3 manage.py runserver

成功启动,可以通过8000端口访问

在这里插入图片描述

4.解决前后端跨域通信

安装django-cors-headers ,在pycharm终端输入

pip install django-cors-headers

修改settings.py文件,改变以下内容

INSTALLED_APPS = [
    ...
    'corsheaders']
MIDDLEWARE_CLASSES = (
    ...
    'corsheaders.middleware.CorsMiddleware',
    #注意:上面这条要在'django.middleware.common.CommonMiddleware'之前
    ...
)

在settings.py最后添加以下内容

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()
  
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)
  
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

重新运行项目,同时运行前端项目即可进行跨域通信

你可能感兴趣的:(python,django,pycharm,sqlite)