django学习基础环境搭建

一般我们的开发环境都是使用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.
django学习基础环境搭建_第1张图片
测试访问

诺,这样就可以访问到我们刚刚搭建的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学习基础环境搭建)