django 进阶

  基础中,一些操作都是手动创建连接的非主流操作,这样显得太low,当然也是为了熟悉这个框架!
  实际中,django自带连接数据库和创建app的机制,同时还有更完善的路由系统机制。既然基础已经了解,那就聊聊主流的东西。

一、web框架重新认知:

既然都是框架,那肯定是都包含了这些模块和对应的功能!但是不同框架之间也是有些诧异,毕竟封装的方法不同。
Django:
- 路由(url路由系统)
- 视图(视图函数)
- 模板(模版页面)
- 数据库 ---> ORM(类-表;对象-行; pymysql连接数据库)
Torando:
- 路由
- 视图
- 模板
- 数据库 ---> 自由:pymysql;SqlAchemy
Flask:
- 路由
- 视图
- 模板(第三方的组件)
- 数据库 ---> 自由:pymysql;SqlAchemy 数据库:操作数据库就两种选择:ORM框架或是原生sql,对于复杂的sql语句,ORM框架是无法实现的,还需要去写原生的sql语句去执行。
所以说,对于数据库操作,这连个选择都必须要会。

二、django创建项目及目录设置操作:

有关django创建新项目的操作,已经在基础中提到过了,就不再重申了。由于我是使用pycharm,所以一些正经的操作都会以pycharm为准。
  1、创建新项目,创建satic文件,配置settings.py文件,这些操作都略过
  2、利用django创建app:
(1)pycharm最底下一行是操作行,找到Terminal,点击进入命令行操作窗口。
(2)执行命名:python manage.py startapp app01
  - 此处说明一下:首先,创建项目的时候,有个python环境。看准是用什么版本的python创建的。
其次,若电脑装了两个不同版本的python环境,先看自己的python自行程序是否重命名了。由于创建是利用python程序去执行,操作的时候一定要写对!
最后:单环境下,直接执行 上述代码即可完成创建。由于我是双环境,执行创建代码为:python3 manage.py startapp app01
  - 再一点注意:可以创建多个app!一个django下可以有多个app(程序)存在!
例如:python3 manage.py startapp app02
(3)创建成功之后,会在当前项目中生成一个名为app***的文件夹,每个文件夹内会有多个py文件。先做如下解释:
  - app01
  - migrations文件夹 用于存放数据库操作日志,不要轻易删除里边的数据
  - __init__ 模块执行前先自动加载的文件(学模块是有具体说明)
  - admin Django自带后台管理相关配置
  - apps 保存当前app的一些配置信息
  - modal 写类,根据类创建数据库表
  - test 单元测试
  - views 业务处理
  - app02
    ……
  3、多个不同的app代表不同的业务,分管不同的模块和功能,这样就可以做到对同一框架的协同开发操作。

三、django 之 路由系统

四、ORM --->关系对象映射操作数据库 配置

  django的ORM没法直接连接数据库,需要利用pymysql第三方工具连接数据库,但是django默认使用MYSQLDB连接mysql,
  但是python3中没有MYSQLDB,所以就需要修改django默认连接mysql的方式!
  同时,django中默认使用sqlite(文件类型)操作数据库,也需要进行修改!
    1、配置数据库:
      # 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
1、如下设置放置的与project同名的配置的 __init__.py文件中
  import pymysql
  pymysql.install_as_MySQLdb()
2、修改与project同名的配置文件settings.py中的DATABASES连接数据库的配置信息:
  (1)把原来的信息注释掉!
  (2)写入新的配置信息:
DATABASES = {
  'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'s4day70', #数据库名称
'USER': 'root', #账号
'PASSWORD': '', #密码
'HOST': 'localhost', #IP
'PORT': 3306, #端口号
'CHARSET':'utf8', #字符编码
}
}
3、注册app:
  - 在settings.py文件中的 INSTALLED_APPS 配置信息,最后加上要操作的app文件名以完成注册操作。注意是字符串类型!
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"app01",
]
  - 有的会自动添加,不用大惊小怪,检查是否正确就行!

五、django ORM操作:

  1、字段及参数

  2、models操作

  3、Django 序列化

六、django 之 模版

七、django 之 分页

八、django自身安全机制-XSS和csrf

九、django -之- session

十、django 之 中间件

十一、django 之 Django请求生命周期

十二、django 之 Form组件

十三、Django models中关于blank与null的补充说明

十四、浅谈 Django内部 用户认证 模块

十五、Django 内置admin详解 定制快速增删改查 

十六、Django 之 信号

十七、Django 之 缓存

十八、Django 之 ModelForm组件

补充:

#在返回信息中

from django.http import JsonResponse  #给页面返回JSON序列化的数据

def post(request,*args,**kwargs):
……
data = {"k1":"v1","k2":"v2"}
return JsonResponse(data) 注意:JsonResponse默认是将字典序列化返回给页面,如是想处理列表类型的数据,则需要额外加上一个参数 safe=False

参考地址:

  http://www.cnblogs.com/wupeiqi/articles/5237704.html

  http://www.cnblogs.com/wupeiqi/articles/5246483.html

  http://www.cnblogs.com/wupeiqi/articles/6216618.html

最新文章

  1. C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发二
  2. Node.js入门:Node.js&NPM的安装与配置
  3. java高薪之路__001_类
  4. AngularJS开发指南1:AngularJS简介
  5. 电赛总结(四)——波形发生芯片总结之AD9834
  6. 用NOPI将图片二进制流导出到Excel
  7. linux_fedora nexus_auto_start
  8. chrome浏览器取消置顶的方法
  9. C#教程之打印和打印预览
  10. 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra
  11. JQ与AJAX 省市区三级联动下拉框
  12. 详解Java动态代理机制(二)----cglib实现动态代理
  13. Oracle day04 DML_事务_序列_视图_数据类型_DDL
  14. chrome总是提示“请停用开发者模式运行的扩展程序”
  15. sql转百分比并保留两位小数
  16. Numpy 线性代数
  17. flask flash消息
  18. Python新手入门英文词汇(1-1)
  19. Ubuntu关机时间过长,总是停在logo界面
  20. VS2015 C#项目工程配置emgucv依赖的方法

热门文章

  1. linux与windows 通过SecureCRT进行文件传输方式
  2. setup in xunit
  3. review02
  4. Sharded数据分片定位数据
  5. 10 个 SQL 注入工具
  6. python中的excel操作
  7. hdu6242 计算几何
  8. 插入排序—希尔排序(Shell`s Sort)原理以及Java实现
  9. java学习笔记 --- IO流小结
  10. Git学习--创建版本库