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

python web框架 Django进阶的更多相关文章

  1. 利用python web框架django实现py-faster-rcnn demo实例

    操作系统.编程环境及其他: window7  cpu  python2.7  pycharm5.0  django1.8x 说明:本blog是上一篇blog(http://www.cnblogs.co ...

  2. python web框架 django wsgi 理论

    django wsgi python有个自带的wsgi模块 可以写自定义web框架 用wsgi在内部创建socket对象就可以了 自己只写处理函数就可以了django只是web框架 他也不负责写soc ...

  3. python web框架 django 工程 创建 目录介绍

    # 创建Django工程django-admin startproject [工程名称] 默认创建django 项目都会自带这些东西 django setting 配置文件 django可以配置缓存 ...

  4. python web框架 Django基本操作

    django 操作总结! django框架安装: cmd安装: pip3 install django pycharm安装: 在python变量下 搜索 django 安装 创建django项目: c ...

  5. python web框架Django入门

    Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...

  6. Python Web框架——Django

    返回顶部 使用框架简单快速开发特定的系统. pip freeze > requirements.txt pip install -r requirements.txt 一 MVC和MTV模式 二 ...

  7. python web框架Django——ORM

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

  8. python web框架 django 练习1 django 1.11版本

    django练习 在我自己项目里创建一个xiaoliu的文件夹 里面创建s1.py 文件 s1.py文件 里面写各种函数 from django.shortcuts import HttpRespon ...

  9. python web框架 django工程的创建

    安装 django pip3 install django pip install django 安装完后出现这两个文件 django-admin 用来创建文件夹 在script目录 执行这个命令 d ...

随机推荐

  1. 3.mysql多表

    这篇主要总结mysql的建表规则. 01.多表_建表的原则:     需求:创建一个表可以存储学员信息:学员编号,姓名,性别,年龄,科目     1).原则:         1.保证表中的一列,只记 ...

  2. different between web api and web service

     https://stackoverflow.com/questions/19336347/what-is-the-difference-between-a-web-api-and-a-web-ser ...

  3. python3与anaconda2共存

    我是先下载了python3,后来因为需要2为了省事就去下载了anaconda2,但发现这里有个很严重的共存问题. 找了一下网上的各种共存问题,发现网上的基本上都是基于一个anaconda然后通过虚拟环 ...

  4. BZOJ 2752 [HAOI2012]高速公路(road):线段树【维护区间内子串和】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2752 题意: 有一个初始全为0的,长度为n的序列a. 有两种操作: (1)C l r v: ...

  5. jquery自定义window事件

    <body> <a href='https://www.baidu.com/'>百度</a> </body> <script type=" ...

  6. Windows 10 SDK 10.0.10158

    昨天微软发布了Windows 10 SDK 10158版本: http://blogs.windows.com/buildingapps/2015/06/30/windows-10-sdk-previ ...

  7. hdu 5236 Article(概率dp¥)

    Article Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  8. memset函数用法及注意事项

    头文件 #include<cstring>// or #include<memory.h> ------------------------------------------ ...

  9. LeetCode OJ:Contains Duplicate(是否包含重复)

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  10. python虚拟开发环境搭建(virtualenv和virtualenvwrapper)

    虚拟开发环境的搭建 (0) 搭建虚拟环境的意义 使不同的开发环境独立 环境升级不影响其他开发环境,也不影响全局 防止包管理的混乱 (1) 指定 虚拟环境的创建目录 环境变量设置 创建 WORKON_H ...