欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 学习一 搭建环境系列之三 linux搭建django 以及搭建django时遇到的各种问题

程序员文章站 2024-02-28 08:55:04
...

搭建django时,遇到的各种问题导致卸载重装重装再卸载,做了很多次,耽搁了太多时间!记个笔记

搭建django 网址推荐:

    http://blog.csdn.net/a249900679/article/details/51527200

    https://www.cnblogs.com/freeweb/p/5210167.html


本人遇到的各种问题:

1、django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3

原因:缺少sqlite数据库??
解决方案:
    在可以连接外网的条件下:
    1、yum install -y sqlite   sqlite-devel
    2、然后重新编译安装python,找到原本下载解压python的目录,
     如我的目录时:
    # cd /usr/local/python3/Python-3.6.1
    # ./configure --prefix=/usr/local/python3
     #  make && make install  
   如果不能连接外网,就无法使用yum了:
    1、现在官网上 下载相应的sqlite源码包  :http://www.sqlite.org/download.html
       
        2、解压下载的包:
                tar -zxvf xxx.tar.gz
        3、进入下载的sqlite目录,执行命令安装
               3.1、  ./configure
              3.2、 make && make install
        4、安装完成之后  输入    sqlite3  验证
        5、验证成功后,再到安装目录python路径下 再重新编译安装一次                
        5.1    # cd /usr/local/python3/Python-3.6.1
        5.2    # ./configure --prefix=/usr/local/python3
          5.3     #  make && make install 
        6、如果不放心 可以再使用命令验证一下python 和django
                如 python3 -V 
                    python3
                        import django
                        django.VERSION
                或者使用:    
                    python3 -c "import django; print(django.get_version())"    直接验证django
        7、再创建django项目
                django-admin.py startproject HelloDjango
        8、关闭linuxx防火墙:
                

/etc/init.d/iptables stop


        9、进入刚才创建的项目目录下,开启服务:
                python3 manage.py runserver 192.168.110.128:8000
        10、windows系统用浏览器登录 如图:
    


         11、退出之后,查询该端口进程,如果不想使用就删掉:
        sudo netstat -tulpn | grep :8000
        删掉 8000的进程: kill -9 8000的进程数(如28360:kill -9 28360)  


2、继续第一个问题之后,
可以先验证一下安装的python和django :    
        python -c "import django; print(django.get_version())"
如果没有问题,就创建一个hello工程
   
django-admin.py startproject HelloDjango
可能会报错:
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
如图:
Linux 学习一 搭建环境系列之三 linux搭建django 以及搭建django时遇到的各种问题

解决方案:注意自己的我本人的命令是:    python3 manage.py migrate(python3是安装python时启用的命令)

 
# 此时需要先输入以下命令
python manage.py migrate
# 输出以下信息则为正常情况
Operations to perform:
  Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
  Rendering model states... DONE
  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 sessions.0001_initial... OK
# 运行成功后,再次运行如下命令即可:
python manage.py runserver
# 此时出现如下结果则代表一切正常:
System check identified no issues (0 silenced).
December 21, 2014 - 08:56:00
Django version 1.7.1, using settings 'my_blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
# 如果你的环境中有图形化的浏览器的话,则可以进行进一步的检验。输入:http://127.0.0.1:8000/
如图:
Linux 学习一 搭建环境系列之三 linux搭建django 以及搭建django时遇到的各种问题



3、

关于django服务器重启端口占用解决方案

有时会用到启动之后再启动会遇到端口已经被用的情况,
可以先查看进程如8000端口:sudo netstat -tulpn | grep :8000
再根据查看到的进程杀掉: kill -9 xxx(进程数)
如图:


4、

[[email protected] python]# django-admin startproject dbs_python
-bash: django-admin: command not found

额 又报错

找到路径 find / -name django-admin.py

/usr/local/python27/bin/django-admin.py  startproject dbs_python 

可以创建了 这是没有加环境变量

加入环境变量:

export PATH=/usr/local/python3/bin/:$PATH
如图:
Linux 学习一 搭建环境系列之三 linux搭建django 以及搭建django时遇到的各种问题



5、出现错误:
Invalid HTTP_HOST header: '192.168.110.128:8000'. You may need to add '192.168.110.128' to ALLOWED_HOSTS.
解决方案:
在python3 manage.py runserver 192.168.110.128:8000
创建的项目的目录中修改setting.py文件 在 []里面添加 '*' 再保存退出即可
    ALLOWED_HOSTS = [‘*‘]  #在这里请求的host添加了*


6、防火墙设置

防火墙的方法为:

一、service方式

查看防火墙状态:

[[email protected] ~]# service iptables status

iptables:未运行防火墙。

开启防火墙:

[[email protected] ~]# service iptables start

关闭防火墙:

[[email protected] ~]# service iptables stop

二、iptables方式

先进入init.d目录,命令如下:

[[email protected] ~]# cd /etc/init.d/

[[email protected] init.d]#

然后

查看防火墙状态:

[[email protected] init.d]# /etc/init.d/iptables status

暂时关闭防火墙:

[[email protected] init.d]# /etc/init.d/iptables stop

重启iptables:

[[email protected] init.d]# /etc/init.d/iptables restart



7、
python manage.py startapp appname 运行某个应用

python manage.py makemigrations   用于记录数据库的所有修改

python manage.py migrate          将修改的数据进行提交

python manage.py createsuperuser  创建一个超级管理员