初识Django

一,Django简介

1,MVC框架模式

在介绍Django之前,我们先来简单了解一下MVC框架。MVC全名为Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。当然我们下面要了解的Django也采用了MVC框架,但是Django的是MTV,Django中的M相当于MVC中的M,T相当于V,V相当于C,他们对应的作用是一模一样的。

2,web框架介绍

web框架简单来讲其实就是socket服务端跟浏览器之间的通信。当然从socket服务端功能划分可分为下面几种:a.负责与浏览器收发消息,也就是常用的socket通信(在Django中使用的是wsgiref,当然还有uWsgi/gunicorn等等),当然讲到了wsgi很多人也会疑惑到底是什么东西呢,wsgi是web服务器网关接口(Python Web Server Gateway Interface)的简称,是作为Web服务器与Web应用程序或应用框架之间的一种低级别的接口。b.根据用户访问不同的路径执行不同的函数。c. 从HTML读取出内容,并且完成字符串的替换,当然也叫模板语言,常用的有jinja2。

这里简单讲一下web框架按照不同的分类方式。

a,按照上面讲的socket服务端功能划分

Django   ——》          框架自带b和c,使用第三方的a

Flask   ——》  框架自带b,使用第三方的a和c

Tornado   ——》  框架自带a,b,c

b,按照体量来划分

Django  ——》  非常大,里面涵盖所有你做网站开发所需要的任何东西

其他(Flask,Tornado,web.py,Bottle等)   ——》  可定制型很强,体量较小,这里当然这里值得提的就是Tornado,他采用的是异步非阻塞io处理方式,跟web.py一样,性能相对比较高。

二,创建Django程序

1,创建一个新的Django项目

a.命令行创建

django-admin startproject projectname    projectname为创建的项目名称

b.IDE直接创建(本质也是命令行创建)

2,常用命令介绍

python manage.py startapp app01(python-admin startapp app01)  app01为新建app名称

python manage.py runserver 127.0.0.1:8001  项目启动代码127.0.0.1为ip地址,8001为端口号

python manage.py makemigrations    把Django里面语句转为数据库操作语句

python manage.py migrate      把转化为的数据库操作语句执行(一般和上面一个一起用)

python manage.py createsuperuser    创建超级用户

python manage.py flush      清空数据库里面表的数据

python manage.py inspectdb > app/models.py  根据现有数据库生成models

3,项目目录结构

4,基本配置

a,数据库连接配置

 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql',  #什么数据库
 4         'NAME': 'test',  # 数据库名字
 5         'HOST': '127.0.0.1',  # 数据库地址
 6         'PORT': 3306,  # 端口号
 7         'USER': 'root',  # 用户名
 8         'PASSWORD': '123456',  # 密码
 9         'CONN_MAX_AGE': 300,  # 创建数据库连接时间
10     }
11 }
12           

这里值得注意的是由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替。如下设置放置的与project同名的配置的 __init__.py文件中。

import pymysql

pymysql.install_as_MySQLdb()

以后在做项目的时候会存在对数据库连接等的优化问题就会用到这里的CONN_MAX_AGE,具体详情参考文档https://yiyibooks.cn/xx/django_182/ref/databases.html

b,模本配置

1 TEMPLATE_DIRS = (
2     os.path.join(BASE_DIR,'templates'),
3 )
4 #当然这里不用配置,默认就是有一个teplates

c,静态资源配置

1 FILES_DIRS = (
2     os.path.join(BASE_DIR, 'static'),
3 )
4 #这里记得一定在os.path.join()的后面加一个,

在这里配置好了以后下面就要开始写一个自己的项目了,当然在写之前还有Django的生命周期还要掌握。后面也会讲到Django里面的路由系统,orm操作,模板语言的使用,视图函数等等写法。由于种种原因好久没有写博客了,后面我也会在博客里面写到我在Django里面踩到的坑。马上要实习了,看到很多朋友找工作很困难,看了看没有技术的自己,流下来没有技术的眼泪。

原文地址:https://www.cnblogs.com/zzqit/p/9601143.html