做运维,最近学习了django,从1版本到2.0再到现在这个2.2版本,中间功能变化不少,坑啊
建议初学者还是直接学新点的,现在已经出3版本了。。。。
- 基本环境:python3.6,pip安装django2.2,django-bootstrap3,mysqlclient
- 根据案例自己编写了个简单的订单管理系统。
- 成品目录结构如下( 删除了pycache目录及内容):
[root@flyao biosky]# tree . #项目根目录内,项目名biosky
.
├── biosky
│ ├── __init__.py
│ ├── settings.py #项目配置文件
│ ├── urls.py #项目路由配置文件
│ └── wsgi.py #web接口文件
├── manage.py
├── order #订单管理功能
│ ├── admin.py #后台管理注册文件
│ ├── apps.py
│ ├── forms.py #使用django自带的Form表单功能,把使用到的统一放在这个文件里
│ ├── __init__.py
│ ├── migrations #数据库迁移文件目录,多余迁移文件已删除
│ │ ├── __init__.py
│ ├── models.py #数据模型文件
│ ├── templates #网页目录
│ │ ├── base.html #基本样式定义
│ │ ├── customer.html #单个客户订单查看页面
│ │ ├── customers.html #查看所有客户列表,展示基本信息:所属业务员,客户名,基本信息编辑,新建该客户订单
│ │ ├── edit_customer.html #客户信息编辑页面
│ │ ├── edit_order.html #未确认订单编辑页面
│ │ ├── index.html #首页
│ │ ├── new_customer.html #新建客户页面
│ │ ├── new_order.html #新建订单页面
│ │ ├── orders.html #所有订单查看页面
│ │ ├── pagination.html #分页功能页面
│ │ └── search.html #简单查找页面
│ ├── tests.py #测试用
│ ├── urls.py #该应用的url配置文件
│ └── views.py #项目视图文件
├── ReadMe #关于项目的一点说明
└── user #使用django自带的用户管理功能
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── __init__.py
├── models.py
├── templates
│ ├── login.html
│ ├── register.html
│ └── tt.html
├── tests.py
├── urls.py
└── views.py
settings.py配置文件变动部分如下
INSTALLED_APPS = [ #个人应用注册
.........
'order', #订单管理
'bootstrap3', #使用了pip安装的django-bootstrap3,这个使用起来方便了一点点
'user', #用户管理模块
]
DATABASES = { #数据库,个人用的MySQL
'default': {
'ENGINE': 'django.db.backends.mysql', #使用的数据库类型
'NAME': 'biosky', #数据库名称
'HOST':'127.0.0.1', #数据库所在主机地址
'PORT':3306, #使用端口
'USER':'root', #登录用户名
'PASSWORD':'123456', #登录密码
}
}
LANGUAGE_CODE = 'zh-hans' #语言修改为中文,对于英文不好的朋友非常友好
TIME_ZONE = 'Asia/Shanghai' #时区设置,看这个的朋友基本都要用
LOGIN_URL = '/user/login/' #指出用户登陆模块路径,使用的是django自带的登陆管理
BOOTSTRAP3 = { #因为bootstrap需要jquery支持,这项设置就是提供支持的
'include_jquery':True
}
url.py配置(这个正文少,就都贴出来)
from django.contrib import admin
from django.urls import path,include #增加include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include(('order.urls','order'),namespace='order')), #为了使用命名空间,在2.0是不需要写‘order’这个位置的参数
path('user/',include(('user.urls','user'),namespace='user')),
#在2.2里不写就报错“在include里指定了命名空间,但是没有提供应用名称”
]