前言

前段时间分享了一个Django项目跑起来的基本操作,现在回过头来,我们来一场python的Django项目从无到有。
python环境这里就不说了,自行百度。

一、编辑工具与插件

开发工具:pyCharm
工具安装插件:Requirements

二、使用步骤

1.创建项目

使用pyCharm编辑器创建项目,其实命令也可以,不过后面都肯定是要用编辑器的,这里就直接用编辑器了。

java python 管道 通信 python java接口_django


注意黄色框区域,环境又问题,可能需要自己找目录,如果有警告,需要自行选择python的安装目录找到python.exe。点击“create”后,等待。最终项目目录:

java python 管道 通信 python java接口_django_02


注意这里是没有requirements.txt文件记录依赖插件包信息的,自行new一个txt文件,名称其实可以随意。

java python 管道 通信 python java接口_pycharm_03


新建的项目,如果没有特殊版本要求,可以先升级下依赖包(升级方法上一篇博文里有写)。

2.启动项目

java python 管道 通信 python java接口_django_04


在控制台看到如上内容,在浏览器输入控制台打印的地址,看到如下内容,就表示项目启动了

java python 管道 通信 python java接口_java python 管道 通信_05

3.DjangoAdmin与基础配置

项目的配置文件:settings.py

  • 语言、时区配置
    位置:

内容:

LANGUAGE_CODE = 'zh-Hans'
 TIME_ZONE = 'Asia/Shanghai'

刷新浏览器,django的欢迎界面就是中文的了

djangoAdmin使用

java python 管道 通信 python java接口_pycharm_06


看后台报错:

java python 管道 通信 python java接口_java python 管道 通信_07


提示很明确啊,表不存在。这里说明下,python默认是使用sqlite3轻量级数据库的。一般这个时候我们就需要确定使用什么数据库了,好配置数据库连接信息、安装依赖。我这里还是决定使用mysql数据库。

mysql依赖包安装

java python 管道 通信 python java接口_python_08

  • mysql数据库连接配置

位置:

java python 管道 通信 python java接口_java_09


内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'zwpython',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
        }
    }
}

djangoAdmin表初始化

打开Terminal执行表初始化命令:

python manage.py migrate

java python 管道 通信 python java接口_java python 管道 通信_10


数据库建表情况:

java python 管道 通信 python java接口_python_11


刷新浏览器出现:

java python 管道 通信 python java接口_django_12


看到登录界面就表示admin相关的表结构初始化没有问题了。

创建admin用户

还是在Terminal命令框,执行命令:

python manage.py createsuperuser

java python 管道 通信 python java接口_pycharm_13


依次输入:用户名、邮箱、密码,最后看到succes就ok了,就可以区登录了。

java python 管道 通信 python java接口_django_14


PS:界面有点low啊,这个django的admin模块其实可以不要的,这只是为了方便管理,快速建后台管理。

美化djangoAdmin

这里用simpleui模块美化,一直演示界面安装插件包,现在来试试命令吧。

Terminal命令框界面,输入命令:

pip install django-simpleui

java python 管道 通信 python java接口_python_15


模块安装后需要引入,配置如下:

java python 管道 通信 python java接口_django_16


PS:输入就有提示的哦,如果没有,那肯定是你的pyCharm少python编辑支持插件,或者python环境有问题。

刷新浏览器,重新登录。

java python 管道 通信 python java接口_java_17


是不是稍微美一点点了,这里美化还有其他插件的,大家可以自己百度。

  • 跨域配置
    这个只要前后端分离肯定是会遇到的,不过就是看是开发解决还是运维通过nginx解决。这里我们就开发自己解决。
    这里通过django-cors-headers解决,还是在Terminal命令框执行:
    pip install django-cors-headers

    配置位置:
    INSTALLED_APPS增加:
    ‘corsheaders’, # 允许跨域,先命令执行pip install django-cors-headers

    MIDDLEWARE增加:
    ‘corsheaders.middleware.CorsMiddleware’, # 跨域中间件,要放在第一行

    跨域配置项:
# 跨域配置开始
# 允许携带cookie
CORS_ALLOW_CREDENTIALS = True
# 允许所有域名跨域(优先选择)
CORS_ORIGIN_ALLOW_ALL = True
# 或配置白名单:
# CORS_ORIGIN_WHITELIST = ()
CORS_ALLOWED_ORIGINS = (
    'http://*.*.*.*:*',
    'https://*.*.*.*:*',
)
# 允许跨域的方法
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',
)
# 跨域配置结束
  • 上传文件支持
    现在一般文件不会存在项目里了,这里就是演示下可以支持。
    通过Pillow实现,可以支持在浏览器直接路径访问
    Terminal命令框执行:
    python -m pip install Pillow

    项目里建一个upload目录,放一张图片备测试。
    urls.py文件设置url,内容:

    PS:这里在pyCharm里引包,alt + Enter快捷键(默认键值设置)可选择包。注意输入符停留在报红波浪位置,再按Alt + Enter哦。

    这里语义就是upload/后拼接文件名称,.*表示没有限制格式,可自行设置固定格式
    效果:

三、创建业务模块

       这个首先要说下,这个跟java不太一样,最好不要增加new一个目录,new几个文件就引入模块xxx,这非常容易报:no model named xxx

最好是在Terminal命令框用命令借助django-admin建模块,这样保证不会有文件缺少、路径等等问题。

比如要建一个user模块,执行命令:

django-admin startapp user

java python 管道 通信 python java接口_java python 管道 通信_18


配置模块引入:

java python 管道 通信 python java接口_java python 管道 通信_19


然后就可以在对应的py文件里写接口了。

总结

总的来说,流程就是上面这样的,然后后面还需要引入restful、framework等等支持。不得不说python的生态也可以,发展很快。spring、java还是要继续加油。不过说实话,用这个写api接口,实在是有点怪怪的,也不知道它的orm框架咋样,我们下期再见。一起学python,一起卷卷。