1 Python安装Django
Pip3 install Django
安装完成后,..\Programs\Python\Python36\Scripts 目录下的django-admin.exe 添加到环境变量中
2 Django基本配置
2.1 创建项目
1、方法一:cmd下执行命令
django-admin startproject mysite
注意:如果提示不是内部或外部命令,可以写全部路径进行创建
2、方法二、pycharm中创建-------此方式支持pycharm个人版,不支持社区版
(1) 打开pychrm--File---New Project --
(2) 左侧选择Django,右侧输入名称信息
3、方法三、pycharm社区版
(1) 创建项目:在cmd命令行下输入:django-admin startproject Demo (cmd命令先进入目录:cd D:\PycharmProjects)
(2) 导入项目:打开Pycharm,open,选择刚才创建的项目
创建成功后目录:
Mysite-------------------主目录
Mysite------------------子目录
--settings.py---------------配置文件
--urls.py--------------------配置文件--路由映射
--wsgi.py-------------------配置文件
Manage.py--------------Django程序启动文件
2.2 创建APP
所有app中的内容都共享主文件中的配置
1、创建app
创建app方法1:
在terminal 中输入命令
先进入到cd mysite 目录下,输入命令:python manage.py startapp cmdb # cmdb是app名称
注意:如果提示不是内部或外部命令,可以写全部路径进行创建
创建成功,主目录下会多一个文件夹
目录结构说明:
Cmdb-----------子目录
Migrations----------子文件夹
Admin.py------------------------------已自动创建后台管理系统,管理后台系统的
Apps.py------------------------------ 当前app的配置文件
Models.py------------------------------与数据库相关内容,写完类自动生成表
Tests.py------------------------------ 用于单元测试,测试程序的
Views.py------------------------------ 业务相关内容,可以创建成文件夹
创建app方法2:
使用 manage.py Task 工具创建APP
2、Views业务文件夹
创建views文件夹,将原Views.py文件放到views文件夹中,其他py文件位置不能变化
2.3 路由映射
1、路由映射 urls.py—单app映射
from django.conf.urls import url
from django.contrib import admin
from cmdb import views
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
View.py中代码:
from django.shortcuts import render
from django.shortcuts import HttpResponse
# 处理用户请求,固定的参数request,将用户的请求都放在此参数中
def index(request):
# 只有将返回值放到参数HttpResponse中,用户才能看到返回值内容
return HttpResponse('123')
2、路由映射 urls.py—多app映射
主urls.py文件配置
from django.conf.urls import url, include
urlpatterns = [
url(r'^app01/', include('app01.urls')),
]
子urls.py文件配置
from django.conf.urls import url
from app01.views import views
urlpatterns = [
url(r'^index.html/', views.inedx),
]
2.4 数据库配置
1、sqlite数据库(django默认数据库)
(a) setting.py配置文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
(b) 创建数据库命令
---- python manage.py.makemigrateions
---- python manage.py migrate
mysql数据库
(a) setting.py配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': ClassManageSystem,
'HOST': 'localhost',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'root',
}
}
(b) 在数据库中先创建要连接的数据库名,因为django不提供创建数据库的功能
(c) 创建数据库命令
---- python manage.py.makemigrateions #让 Django 知道我们在我们的模型有一些变更
---- python manage.py migrate #创建表结构
执行创建数据库命令时,报错解决方法:
(1) 错误内容:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
解决方法:
将文件中的如下代码注释掉
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
(2) 错误内容:AttributeError: 'str' object has no attribute 'decode'
解决方法:
将文件中的错误代码:query = query.encode(errors='replace')
解决方法:把decode改为encode即可。
(d) 连接MySQL已经生成的库
需要根据数据库去自动生成新的models文件
python manage.py inspectdb #简单可以看一下自动映射成的models中的内容
导出并且去代替models.py
python manage.py inspectdb > models.py
会在manage.py的同级目录下生成了一个models.py文件,使用这个models.py文件覆盖app中的models文件。
如果完成了以上的操作,生成的是一个不可修改/删除的models,修改meta class中的managed = True则可以去告诉django可以对数据库进行操
2.5 启动Django程序
方法一:在teminal中执行命令
python manage.py runserver 127.0.0.1:8000