django学习整理
说明
关于Django
Django仅仅是一个web框架,并不是一个web服务器。就像Tomcat是个web服务器,而springMVC是web框架。(不过Django为了开发者方便,嵌入了一个简单的服务器。所以开发后期本文会通过使用nginx代替Django自带的web服务器。)认清这一点很有意义,我们在Django的开发中主要实现model,view,controller三部分。
关于Office Automation
创建办公室自动化(office automation)项目。实现基本功能包括:
- 用户管理
1.1 注册
1.2 登陆 - 账单管理
2.1 账单查询
2.2 新增账单记录
2.3 删除账单记录
1.创建并配置该项目Office Automation
python版本:3.6.1
django版本:2.1.8
创建项目oa
django-admin startproject oa
第一步 启动Django服务器
cd oa #进入项目
python3 manage.py runserver 0.0.0.0:8080#启动该服务器
虽然启动了该项目但是外网仍然无法访问。要想外网访问,需要配置该项目。
第二步 配置该项目
修改项目目录下的oa/setting.py文件,修改后就可以访问了。
ALOWED_HOST = ['*']#接受所有地址请求,也可以设置仅自己地址访问
LANGUAGE_CODE = 'zh-Hans'#设置编码格式
TIME_ZONE = 'Asia/Shanghai'#设置时区
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myApp',#添加app
]
2.创建应用
python manage.py startapp myApp
创建应用后将应用添加到setting.py中INSTALLED_APPS下。
完成后在脑海中构建出MVC模式的简单模型。
1.用户访问什么网页?,一共有哪些?相互关系如何?
2.服务器把url地址映射到哪里?
5.创建模板templates
直接在项目目录下创建文件夹templates。模板就是存放html页面的文件夹。把html分离符合MVC模式。
mkdir templates
5.1在模板templates目录下创建index.html
5.2向Django指明模板路径
6.修改模型
模型指MVC中的Model。修改模型用来抽象数据库。
6.1更改model.py文件
下面是修改model.py的一个例子。
6.2创建数据库
更改模型后,只是类似于声明了你需要的数据类型,而数据库中并没有相应的字段。通过以下两条指令对数据库更新:
python3 manage.py makemigrations hello#为INSTALLED_APPS中所有APP生成模型中的sql指令
python3 manage.py migrate hello #执行上述指令
6.3更改setting.py
配置数据库信息。
6.4更改__init__.py
这里解决了数据库的一个错误。具体原理未知。
7.Django下网络访问流程顺序
- 用户在地址栏输入ip:port/hello
- Django服务器检测到访问后,把访问请求交由urls.py管理。
- 程序员需要在urls.py文件中指定用户地址的映射。例如把ip:port/hello映射到hello.py。
- 程序员通过实现hello.py向用户展示信息。(如果该页面有向数据库的读写,则通过创建模型类的对象使用数据库)