Django学习笔记2 创建工程

创建工程

Django安装完成后,bin目录下会生成django-admin.py文件,调用如下命令创建工程

    django-adminstartproject mysite    #会在当前目录创建

新建APP

工程创建之后,调用如下命令创建应用,注意venv的使用

    python manage.pystartapp comic

配置wsgi

修改/etc/httpd/conf.d/中的配置文件,调用此wsgi,若使用venv需要同时设置python-path

<VirtualHost *:8081>

   ServerName compute01

   ServerAlias 192.168.1.52

   <Directory /var/myproject>

       Require all granted

   </Directory>

WSGIScriptAlias / /var/myproject/mysite/mysite/wsgi.py

WSGIDaemonProcess mysitepython-path=/var/myproject

使用venv时,wsgi调用wsgi.py时,sys.path中未包含venv中的包。所以要在wsgi.py中指定django及mysite的sys.path

import os

import sys

#sys.path中指定django.core.wsgi的位置

sys.path.append('/var/myproject/python/lib/python2.7/site-packages')

#sys.path中指定mysite.settings的位置

sys.path.append('/var/myproject/mysite')

os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

重启httpd,成功使用wsgi调用django应用

这里需要注意的是,如果部署两个以上不同的django project在不同端口时,使用os.environ.setdefault("DJANGO_SETTINGS_MODULE","startlearner.settings")设置环境不可行,因为后面的project会覆盖前一个project的环境变量。此时需要在每个wsgi中直接指定环境变量

mysite/wsgi.py

os.environ["DJANGO_SETTINGS_MODULE"]= "mysite.settings"

imp/wsgi.py

os.environ["DJANGO_SETTINGS_MODULE"]= "imp.settings"

这样就可以同时启动两个使用不同环境变量的project了

ALLOW_HOST

注意配置settings.py中的ALLOWED_HOSTS设置访问权限,ALLOW_HOST = ["*"]    #所有远程地址均可访问

DATABASE

配置MySQL数据库

创建数据库、用户

 
 

# mysql -uroot

 -   >create database mysite CHARACTER SET utf8;

 -   >create user mysite;

 -   >grant all privileges on mysite.* to 'mysite'@'%'identified by '123456' with grant option;

 -   >flush privileges;

注意:新安装数据库后,新建用户mysite本地登录时,可能会报1045错误,远程登陆则无此问题,原因是mysqllocalhost匿名登录机制导致的。在user表中添加一条重复mysite记录,但其host字段为localhost可解决此问题,删除user表中User字段为空的数据(删除匿名用户)也可解决此问题。详见http://www.cnblogs.com/zhao1949/p/6117698.html

Django后台可使用多种数据库,默认SQLites

配置Django使用mysql数据库,修改settings.py

DATABASES = {
	    'default': {
	        'ENGINE': 'django.db.backends.mysql',
	        'NAME': "mysite",
	        'USER': "mysite",
	        'PASSWORD': "123456",
	        'HOST': "127.0.0.1",
	        'PORT': "…",
                'default-character-set': 'utf8',
	        'OPTIONS': {
	            'init_command': 'SET storage_engine=INNODB',
#注意:mysql内部存在不同引擎,此参数需要设置,参考https://docs.djangoproject.com/en/1.11/ref/databases/
	        }
	    }
	}



猜你喜欢

转载自blog.csdn.net/qq_39567580/article/details/80743839