美文网首页
将本地django drf项目迁移到服务器

将本地django drf项目迁移到服务器

作者: csr_yang | 来源:发表于2019-08-27 17:13 被阅读0次

    之前一直用的django在本地开发restful api,虽然有些不方便,但是也能将就使用,本来也是业余练手兼玩玩的意思,所以一直也没有怎么考虑部署的问题。
    今天看到腾讯云服务器新手做活动,99元/年,价格还有点美丽,就买了一台云服务器。于是,就考虑把本地的django项目部署到云服务器上。
    所以,接下来就记录一下一步步摸索的过程。

    购买服务器

    腾讯云标准型S2云服务器 最低配的

    服务器安装Python3.7

    pip安装第三方库和框架

    需要安装的有django pymysql restfulframework django-filter等等相关的包

    Pycharm连接远程服务器

    Pycharm连接远程服务器并进行代码上传
    直接将本地代码上传到远程服务器并保持同步
    使用远程服务器的Python解释器,直接在Pycharm中运行远程代码。

    服务器安装Mysql

    CentOS7 安装Mysql

    最新的Mysql rpm地址:https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

    修改初始密码时注意'' 和``的区别,否则报错ERROR 1064 (42000)

    Navicate连接远程数据库

    使用常规方法连接,有一个错误:Host 'xxx' is not allowed to connect to this MySQL server.

    解决办法
    将root用户修改为可以访问所有的host

    mysql> update user set host = '%' where user = 'root';
    

    数据库迁移,从本地迁移到服务器

    使用Navicat连接到远程服务器,创建数据库。
    使用Navicat连接本地数据库,将需要迁移的数据导出,然后导入到远程数据库。
    迁移过程出现了部分字段被更改的情况,需要重新修改调整

    更改django项目的数据库配置

    将setting中DATABASE的配置修改为远程数据库的配置信息

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '你的项目名称',
            'USER': 'root',
            'PASSWORD': '你的密码',
             'HOST': '127.0.0.1', //如果项目跟数据库都在同一台服务器的话,这里不用配置你的ip,使用127.0.0.1即可
            'OPTIONS':{'init_command': 'SET default_storage_engine=INNODB;'}
        }
    }
    

    ip访问配置

    购买的服务器注意要修改安全规则,允许80 8000等端口访问。
    服务器上允许django项目 进入到项目目录下,运行下面的命令

    python manage.py runserver 0.0.0.0:8000
    

    注意,如果需要使用其他用户通过公网ip访问,此处因为在0.0.0.0:8000上跑,而不能用127.0.0.1:8000跑。
    还有项目的setting.py文件中设置ALLOWED_HOSTS
    公网ip无法访问的问题

    经过这一系列的设置,api就成功的在公网ip上跑起来了,客户端调用成功,整个迁移成功。
    这篇文章只是粗略的记录了一个流程,实际操作过程遇到了各种各样的问题,最后都一一解决了。而且每个人的服务器配置,软件安装版本的不同,操作习惯的不同,可能并不一定适用每个人。仅供参考。

    待续 Nginx+uwsgi部署

    用django自带的web服务,性能有短板,接下来还要考虑安装Nginx进行转发

    相关文章

      网友评论

          本文标题:将本地django drf项目迁移到服务器

          本文链接:https://www.haomeiwen.com/subject/hnieectx.html