美文网首页我爱编程
django学习基础环境搭建

django学习基础环境搭建

作者: 鸟它鸟 | 来源:发表于2018-05-26 19:07 被阅读0次

    一般我们的开发环境都是使用virtualenv构建的,那么要在设备上构建python3.6的virtualenv环境怎么搞?毕竟2.6的virtualenv不能构建3.6的虚拟环境出来。

    so easy !!

    先看下python3.6的安装
    https://www.jianshu.com/p/11a876346bb9

    安装好后执行如下操作

    #安装virtualenv虚拟化环境
    [root@xxx01 ~]# /usr/local/python36/bin/pip3 install virtualenv
    
    #创建一个新的python3.6的虚机环境使用
    [root@xxx01 ~]# cd /data/
    [root@xxx01 data]# /usr/local/python36/bin/virtualenv ./python36env    #创建
    [root@xxx01 data]#. python36env/bin/activate  #进入到虚拟环境,注意前面那个点,替换为source也ok,这块不理解可以查下. 与 source代表什么
    
    #安装一个django环境(注意,操作是在虚拟环境中进行的)
    (python36env) [root@xxx01 data]# pip install "django>=1.11,<2.0"   #这里想按照1.*的最新版本,但又不想安装2.0的版本,所以这样写
    

    然后可以创建django的程序喽

    (python36env) [root@xxx01 data]# django-admin startproject ops
    (python36env) [root@xxx01 data]# ls
    ops  python36env
    

    可以看到我们建立了一个ops的项目,现在我们去启动下去

    (python36env) [root@xxx01 data]# cd ops/
    (python36env) [root@xxx01 ops]# vim ops/settings.py
        28 ALLOWED_HOSTS = ['*']  #修改第28行这个允许访问的列表为所有
    
    (python36env) [xxx01 ops]# python manage.py  runserver 0.0.0.0:8000
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    
    May 26, 2018 - 10:51:34
    Django version 1.11.13, using settings 'ops.settings'
    Starting development server at http://0.0.0.0:8000/
    Quit the server with CONTROL-C.
    
    测试访问

    诺,这样就可以访问到我们刚刚搭建的python项目了

    不过不知道大家有没有发现一段提示:

    You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    

    这里是说,我们当前有13个数据库的修改未提交,小伙伴们一定很懵逼,我又没配置数据库,为嘛数据库会有修改未提交呢?

    这里我们一起去看下django的配置文件

    在配置文件的76-81行左右有如下一段配置
    (python36env) [xxx01 ops]# vim ops/settings.py
     76 DATABASES = {
     77     'default': {
     78         'ENGINE': 'django.db.backends.sqlite3',
     79         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
     80     }
     81 }
    

    这块是调用了sqlite3做了基于文件的数据库,我们可以看到79行,数据库文件存储在了BASE_DIR下名称为db.sqlite3,大概找了一下,就在django的/路径下

    (python36env) [root@xxx01 ops]# ls
    db.sqlite3  manage.py  ops
    

    那么怎么把这段信息干掉呢?或者说将数据库的改变更新到数据库中呢?

    (python36env) [root@xxx01 ops]# python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying sessions.0001_initial... OK
    

    一条命令搞定,就是将代码中对于数据库的映射关系更新到数据库中。

    然后我们在重新启动下我们的django程序

    (python36env) [root@xxx01 ops]# python manage.py  runserver 0.0.0.0:8000
    Performing system checks...
    
    System check identified no issues (0 silenced).
    May 26, 2018 - 11:02:18
    Django version 1.11.13, using settings 'ops.settings'
    Starting development server at http://0.0.0.0:8000/
    Quit the server with CONTROL-C.
    

    诺,现在没有报错喽

    好吧 这篇就酱汁吧

    相关文章

      网友评论

        本文标题:django学习基础环境搭建

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