一、创建项目
如果是新建一个 Django
项目,那么你要进行一些初始设置。从命令行 cd
到您要存储代码的目录,比如,想在/opt
目录下新建一个manageproject
的项目,就进入/opt
目录,然后运行以下命令:
django-admin startproject manageproject
创建后的文件目录如下:
-
关于上面自动生成的目录与文件解释如下: 外部
manageproject/
根目录只是一个项目的容器。它的名字与Django
无关;可以将其重命名为您喜欢的任何内容。 -
manage.py
:一个命令行实用程序,可以让您以各种方式与此Django项目进行交互。你可以阅读所有的细节manage.py在Django的管理和manage.py。注意,这个后面会经常用到
-
内部
manageproject/
目录是您的项目的实际Python包。它的名字是您需要用来导入其中的任何内容的Python包名称(例如mysite.urls)。 -
manageproject/init.py
:一个空的文件,告诉Python这个目录应该被认为是一个Python包。 -
manageproject/settings.py
:此Django
项目的设置/配置。以后进行配置的时候会经常用到,比如数据库配置。
-
manageproject/urls.py
:该Django
项目的URL
声明; 您的Django
动力网站的“目录”。 -
manageproject/wsgi.py
:WSGI兼容的Web服务器为您的项目提供服务的入口点。
二、运行开发服务器
在manageproject
目录,运行相关命令,进行服务的启动。这里我使用的是阿里云服务器,需要先开放防火墙,另外要指定允许访问的IP地址和访问的端口。这些在生产环境中都可以进行相关的配置。
另外,在运行前,需要对manageproject/manageproject/settings.py
中的主机进行配置,设置 ALLOWED_HOSTS = ['*']
。
- 默认启动方式
python3 manage.py runserver
- 指定端口启动
python3 manage.py runserver 80
- 指定允许访问的ip地址 和 服务端口启动
python3 manage.py runserver 0.0.0.0:80 #允许所有IP访问
【备注】如果出现以下"django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17)."
报错,则是Django
和SQLite
版本不匹配的问题,可以进行SQLite
的升级,或者降低Django
版本。当然,也以不使用默认的SQLite
数据库,比如,改成mysql
数据库,数据库根据自己的实际情况进行修改。
【使用mysql数据库方式】
1.在manageproject/manageproject/settings.py
中,修改数据库连接方式
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'NAME',
'USER': 'USER',
'PASSWORD': 'PASSWORD',
'HOST': 'HOST',
'PORT': '3306',
}
}
【注意】修改数据库为mysql后,有两种配置client的方式,一种是使用pymysql
(低版本中使用这种方式),另一种是使用mysqlclient
方式。两种的处理过程如下:
方式一:pymysql
1.在manageproject/manageproject/__init__.py
中,添加配置
import pymysql
pymysql.install_as_MySQLdb()
#不添加,会报错 “Did you install mysqlclient?”
2.在 /usr/local/lib64/python3.6/site-packages/django/db/backends/mysql/operations.py
修改参数。
#146行
query = query.decode(errors='replace')
#改成
query = query.encode(errors='replace')
#不修改,会报错。AttributeError: 'str' object has no attribute 'decode'
方式二:mysqlclient
yum install gcc* mariadb-devel #安装依赖,注意GCC的包要安装完全
pip3 install mysqlclient #安装mysqlclient
三、运行效果
【注】:这里创建的项目采用的都是真实linux环境,目的是方便练习和入门,后面熟悉后,会采用virtualenv
进行真实项目的创建。