django

Posted 0411xiaofeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django相关的知识,希望对你有一定的参考价值。

1. django-admin startproject my_site 创建项目

 

2.项目目录结构

mysite

-----manage.py  #管理程序的文件,启动和结束等

----my_site

  ----__init__.py

  ----settings.py  #程序的配置文件

  ----urls.py        #程序的路由系统  即:url和处理其函数的对应关系

  ----wsgi.py   #指定框架的wsgi

 

3.django-admin.py startapp app  创建一个app(大项目下的小模块)

 

----__init__.py  (代表是一个python的包)

----admin.py   数据库的管理后台

----apps.py    django把项目和app关联起来的文件

----migrations   数据库相关

  -----__init__.py

----modes.py    数据库操作的地方

----tests.py      #单元测试

----views.py     #业务逻辑代卖

 

 

4.第一次django请求

  1.匹配路由,路由分发器查找用户请求的url对应关系

    1.找到了业务函数,就调用

    2.找不到就报404

  2.业务函数,执行业务逻辑

  3.返回数据给浏览器

 

HttpResponse方法返回数据给前端

 

5.模版初探

1.配置settings.py

2.views.py

return render(request,‘form.html‘)

 

6.MVC&MTV 架构

MVC 是一种MVC(Model View Controller 模型-视图-控制器)设计创建web应用程序的模式

Model(模型) 一般对应数据操作、记录的存取

View(视图) 决定如何展示数据

Controller(控制器)负责处理用户交互的部分,控制器负责从视图读取数据,控制用户输入,并向模型发送数据

Django是一个MTV框架,其架构模版看上去与传统的MVC架构并没有太大的区别,Django将MVC中的视图进一步分解为Django视图和Django模版两个部分,分别决定“展现哪些数据”和“如何展现”使得Django的模版可以根据需要随时替换,而不仅仅先治愚内置的模版,至于MVC控制器部分,由Django架构的URLconf来实现。(MVTC)

 

7.路由   动态路由  静态路由

r-----抑制特殊字符转译   $ 结尾

uuid

自定义converters

 

自己写sql语句

1.sql注入

2.代码sql写在一起了,导致接偶差

3.开发人员不一,导致性能

4.开发效率低

 

什么是ORM

对象关系映射(Object Relational Mapping)它的实质就是将关系数据库中的业务逻辑数据用对西那个的形式表示出来,并通过面向对象(Object - Oriented)的方式将这些对象组织起来,实现系统逻辑的过程

 

在ORM过程中最重要的概念就是映射(Mapping),通过这种映射可以使业务对象与数据库分离。从面向对象来说,数据库不应该和业务逻辑绑定在一起,ORM则起到这样的分离作用,使数据库层透明,开发人员真正的面向对象。

实现了代码与数据库的结果     不需要写sql,提高了开发效率   防止sql注入

牺牲性能  复杂语句力不从心

 

Blog系统表结构设计

1.每个用户有自己的账户信息

2.用户可以发文章

3.文章可以打多个标签

register---注册

 

不过注意,python3 连接mysql的使用pymsql,MysqlDB模块300年没有更新了,但django默认调用的还是MySQLdb,so pymysql有个功能可以让django以为是用了MySQLdb,即在项目目录下的__init__.py中加上句代码就好

import pymsql

 

pymysql.install_as_MySQLdb()

 

django 数据库同步工具

  migrations 

    1.生成同步文件

      python manage.py makemigrations

    2.同步

      python manage.py migrate

 

ORM 创建

1.直接创建

2.先生成对象,再创建

 

shell     from app01  import model

    python manage.py shell 

    model.Account.objects.create(

)  

 

以上是关于django的主要内容,如果未能解决你的问题,请参考以下文章

DjangoDjango 文件下载最佳实践

DjangoDjango模块创建应用程序

DjangoDjango 如何支持 分组查询统计?

DjangoDjango Debug Toolbar调试工具配置

DjangoDjango中的模糊查询以及Q对象的简单使用

djangodjango-redis的使用方法