python框架学习----01初识Django

一、行业简介

1.方向:web后端、爬虫、人工智能AI(研究生学历)

​ 职责:给前端提供网页接口、(前端:页面、页面渲染)

2.课程安排:Django 3周 ---- 前两周基础+项目1周

​ Flask 2周 ---- 第一周基础+1周项目

​ 爬虫 ---- 2周

二、一般公司结构简介

1.项目组

​ (1)产品—2个人,提需求(女生为主)

​ (2)测试-----1-2人,功能测试

​ (3)前端-----写页面,调用后端提供的数据

​ (4)后端----2人以上,获取数据,返给前端

​ (5)UI----设计页面,1人

​ (6)数据库—大型公司会有单独岗

2.公司分类

(1)业务公司:可适当包装

​ (2)技术型公司:e.g知道创于、云和恩墨

​ (3) 销售型公司:程序员较少,技术变动比较少

三、Python主流框架

1.框架

所谓Web框架,就是用于开发Web服务器端应用的基础设施(通常指封装好的模块和一系列的工具)。

2.python主流框架

Django、Flask 、web.py 、tornado 、 twisted 、 sanic、Pyramid、Bottle、Web2py等

四、Django简介

1.Django、Flask简介:

​ 用来做网站,包括前后分离或者前后合在一起

​ 学习资料:王老师github;django官网

​ django 2.0需要python3.7版本支持

2.在基于Python的Web框架中,Django是所有重量级选手中最有代表性的一位,开发者可以基于Django快速的开发可靠的Web应用程序,因为它减少了Web开发中不必要的开销,对常用的设计和开发模式进行了封装,并对MVC架构提供了支持(MTV)。许多成功的网站和App都是基于Django框架构建的,国内比较有代表性的网站包括:知乎、豆瓣网、果壳网、搜狐闪电邮箱、101围棋网、海报时尚网、背书吧、堆糖、手机搜狐网、咕咚、爱福窝、果库等。

五、MVC模式(大部分的框架模式)

1.M(model):模型,数据库存取,进行业务逻辑的判断

​ 模型xxx中定义Tag字段,sort字段

V(view):视图就是页面,表现层,渲染给用户看的页面,根据业务逻辑选择不同的视图

C(controller):控制器,写业务逻辑层,从用户端收集用户的输入,将用户输入的指令和数据传递给业务模型

sql: select * from xxx where Tag = 热门 and sort = 

2.核心思想----解耦(面试高频考点)

实现代码重用,将复杂的东西拆开,降低各个模块之间的耦合度

六、Django----MVT模式

Model:负责业务与数据库(ORM)的对象

view:负责业务逻辑并适当调用module和Template

Template 模板,就是页面:负责把页面渲染展示给用户

七、环境搭建

1.查看电脑中安装的所有包===pip3 list

C:\Users\Administrator>pip3 list

2.查看pip安装过的包===pip3 freeze

3.python环境变量设置

python 3中会自动配置好path

python2.X版本:需要在系统高级配置中设置Path

设置好了在cmd控制台输入python会正常显示

C:\Users\Administrator>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

4.windows中安装虚拟环境===pip3 install virtualenv

C:\Users\Administrator>pip3 install virtualenv
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875
bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl
(1.9MB)
    11% |███▊                            | 225kB 2.4kB/s eta 0:12:00
    
    
 安装成功后显示
    Installing collected packages: virtualenv
Successfully installed virtualenv-16.0.0

有这一步可以将环境和代码分开,环境是环境,代码是代码,尽量不要用pycharm来创建。

5.运行虚拟环境—直接输名字

C:\Users\Administrator>virtualenv

6.创建虚拟环境文件夹env

平时要单独建环境文件夹、代码文件夹能用代码命令完成的尽量用代码操作,用英文路径

【cmd命令回顾】

  • 进入文件夹===cd 文件名

  • 查看当前目录内容====dir

  • 返回上一级目录=== cd …

  • 返回上两级目录===cd …/…/

  • 返回上三级目录===cd …/…/…/

  • 回到根目录 ==== cd/

  • c盘切换到d盘====d:+回车

  • shift+右键在此处打来命令===可在指定文件夹中打开命令

  • 清屏==ls

(1)建文件命名为env,创建django环境===virtualenv --no-site-packages

这里文件位置选择 D:\PythonFile\env----->进入文件夹右击打开命令提示,开始安装包

包命名为djangoenv

D:\PythonFile\env>virtualenv --no-site-packages djangoenv
状态:
Using base prefix 'c:\\users\\administrator\\appdata\\local\\programs\\python\\p
ython36-32'
New python executable in D:\PythonFile\env\djangoenv\Scripts\python.exe
Installing setuptools, pip, wheel...done.

(2)安装成功查看文件===dir

D:\PythonFile\env>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 948F-4A3C

 D:\PythonFile\env 的目录

2018/08/06  11:37              .
2018/08/06  11:37              ..
2018/08/06  11:37              djangoenv
               0 个文件              0 字节
               3 个目录 27,002,458,112 可用字节

(3)进入Scripts文件夹,activate激活虚拟环境

【命令】activate===进入虚拟环境

deactivate===退出虚拟环境

进入文件夹
D:\PythonFile\env>cd djangoenv

进入Script文件
D:\PythonFile\env\djangoenv>cd Scripts

激活,证明此时进入了虚拟环境
D:\PythonFile\env\djangoenv\Scripts>activate

(4)查看列表==pip list

激活虚拟环境会自动弹出(djangoenv) D:\PythonFile\env\djangoenv\Scripts>,输入pip list可查看当下安装列表

查看安装列表
(djangoenv) D:\PythonFile\env\djangoenv\Scripts>pip list
Package    Version
---------- -------
pip        18.0
setuptools 40.0.0
wheel      0.31.1

(5)虚拟环境中安装库(django库、pymysql)

cmd控制台进入虚拟环境D:\PythonFile\env\djangoenv\Scripts>activate

输入命令分别安装django和pymysql

pip install Django==1.11

pip install pymysql

八.创建Django项目

1.先在env同级目录下创建代码文件夹wordspace,子文件命名django(代表存储django代码)

注:工作中一定要代码环境有条理分开

2.从虚拟环境切换到wordspace—>django文件夹

返回到虚拟环境的同级目录
djangoenv) D:\PythonFile\env\djangoenv\Scripts>cd ../../../

路径:用cd命令一层层进入到新建的wordspace文件件
(djangoenv) D:\>cd pythonfile 

3.创建Django项目====django-admin startproject +文件名

要使用这个命令前提一定要django安装成功了,没有安装django是没有这个命令的

(djangoenv) D:\PythonFile\Third\wordspace\django>django-admin startproject day01


创建完可以通过dir命令查看目录,会看到下面已经创建好了day01文件

(djangoenv) D:\PythonFile\Third\wordspace\django>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 948F-4A3C
 D:\PythonFile\Third\\django 的目录
2018/08/07  20:11              .
2018/08/07  20:11              ..
2018/08/06  16:20              day01

4.pycharm中设置环境,实现项目和环境绑定

(1)pycharm软件中打开建立的新项目day01

File-->	open-->找到目标文件夹day01--->ok-->选择open in current window

(2)设置环境

File-->setting-->project interpreter

在选项框中设置成刚才的环境文件件,如果没有就找show all

这样就将项目设定在对应 的虚拟环境上面了

九、Django项目中各个文件的意义

1.pycharm软件中打开建立的新项目day01

File-->	open-->找到目标文件夹day01--->ok-->选择open in current window

2.细说day01

​ 创建的day01文件夹里面还包含一个day01文件夹和manage.py,

​ 其中里面的day01文件中包含四个python文件

day01
	day01
		__ init__.py
		__ settings__.py
		__ urls__.py
		
	manage.py

manage.py:一个让你用各种方式管理 Django 项目的命令行工具, 是Django用于管理本项目的管理集工具,之后站点运行,数据库自动生成,数据表的修改等都是通过该文件完成。

teminal控制台可查看其中命令
wordspace\django\day01>python manage.py


【部分命令演示】===python manage.py runserver

Django version 1.11, using settings 'day01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

init.py: 指明该目录结构是一个python包,空文件,暂无内容,在后期会初始化一些工具会使用到。

seetings.py: Django项目的配置文件,其中定义了本项目的引用组件,项目名,数据库,静态资源,调试模式,域名限制等

DEBUG = True                      #当为True是打开http://127.0.0.1:8000/可以看到网页报错时的内容信息

ALLOWED_HOSTS = []       

INSTALLED_APPS =


TEMPLATES = ['BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],                  # =======放页面的存放位置
        'APP_DIRS': True,=

**urls.py:**项目的URL路由映射,就像你网站的“目录” ,实现客户端请求url由哪个模块进行响应。

wsgi.py:定义WSGI接口信息,通常本文件生成后无需改动

十、案例:第一个view视图函数

效果:运行网页,让网页返回hello world

执行原理:先接收到url请求,通过工程看到当前的url对应的是什么视图(views)和视图下的方法去处理的,方法

​ 是在视图中的

1.pycharm软件中打开建立的新项目day01

File-->	open-->找到目标文件夹day01--->ok-->选择open in current window

2.创建应用==python manage.py startapp (名字自定义取)

在day01下面创建一个app命名为hello

python manage.py startapp hello====》此时会自动创建出一个hello文件夹,里面包含了多个pythn文件

hello中包含的文件

migrations文件夹
	_ _init_ _.py
_ _init_ _.py
admin.py
apps.py
models.py
tests.py
views.py

【文件说明】===model和view最重要

migrations文件夹:作用不大,可删可留

admin.py 管理模型,django提供了一个管理后台(通常工作中用的不多),admin文件的操作在后台都能看到

进入后台看效果
(1)先在terminal控制台输入python manage.py runserver
会显示出http://127.0.0.1:8000/地址
(2)网页中打开网址,并在url中输入admin可以查看到Django后台
http://127.0.0.1:8000/admin

apps.py 用处不大

model.py 定义模型的地方

tests.py 是初始案例(后面会讲到)

views.py写业务逻辑的地方

3.url.py中设置关联——将方法和url绑定在一起

就相当于是路由,目的是当我访问url中hello的时候,要找到view中的方法。

注意上面要导入!!

from django.conf.urls import url			#导入django信息
from django.contrib import admin
from hello import views                    #从hello中导入views



urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'hello/',views.hello) ,          # 目的是当我访问url中hello的时候,要找到view中的方法
]
  
定义了路由之后所以在网址输入的时候就应该是 http://127.0.0.1/hello,
打开这个网页后返回的内容就应该是views文件中hello方法中内容

4.在view.py中定义方法(重要!!)

(1)在view中定义了一个hello的方法。这个方法返回的是hello world
(2)参数为request请求,否则报错,请求中设置GET方法,一般网页访问都用GET请求
(3)发出请求返回东西的时候需要加HttpResponse,用之前需要先在上面导入一下包,否则报红线错误,快捷键alt+Enter提示

from django.shortcuts import render   # 这句命令是该文件中原有的,自动生成的语句
from django.http import HttpResponse   #导入HttpResponse包

def hello(request):
    if request.method == 'GET':
        return  HttpResponse('hello world')
        # 在view中定义了一个hello的方法。参数为request,这个方法返回的是hello world

5.在settings.py中设置===加载app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello',          #写上hello可以将我们的app加载进来
]

还可以修改语言和时区时间

LANGUAGE_CODE = 'en-us'    #改为中文'zh-han'

TIME_ZONE = 'UTC'   #改为'Asia/Shanghai'中国时间

USE_I18N = True

USE_L10N = True

USE_TZ = True

6.显示hello world

(1)在terminal控制台输入python manage.py runserver ,找到运行网址

(2)打开网页,url中输入默认地址+hello

http://127.0.0.1:8000/hello
会显示结果

**【补充】**设置runserver自动运行

打开运行控制台defauit
script path =====找到对应的项目中的manage.py文件
Parameters====runserver 

改端口

在刚才的runserver后面可以加参数

Parameters====runserver 8080   代表指定8080端口

十一、超级用户创建(管理Django后台)

电脑先要启动Mysql,cmd中输入net start mysql57

1.在应用网址后面输入admin可以进入管理后台,我们只需要创建用户名和密码就可访问

url中输入
http://127.0.0.1:8080/admin

2.设置数据库===seting.py中设置

要想设置用户名和密码就需要数据,这里就要用到数据库,在setting.py文件中DATEBASES设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',=====>后面改为mysql
        'NAME':'4day01' ,               #名字命名为4day01
        # 默认一般都是root
        'USER':'root',
        'PASSWORD':'123456',		  #设置密码
        'HOST':'localhost',            # 能访问的数据库地址,本地就写localhost
        'PORT':3306,        		  # 端口名
    }
}

3.在navicat中创建数据库

右击”新建数据库“设置数据库名、字符集、排序规则

​ 注意:数据库名字命名没有硬性要求但是要和python中数据库设置一致

数据库名     4day01
字符集       utf8--UTF-8 Unicode
排序规则     utf8_general_ci

4.初始化Mysql===工程目录下init文件中

在python3中必须有这一步操作

import pymysql


pymysql.install_as_MySQLdb()

5.创建表==python manage.py migrate

用户名和密码都是在表中,有了数据库我们还要为数据库创建表,这里不在nivicat中直接创建,在python中创建

python manage.py migrate

【注意】数据迁移代码的用法

​ 第一次迁移:

​ python manage.py migrate

​ 后面再次迁移:

​ python manage.py makemigrations

执行完毕刷新数据库中4day01中的表会生成Django自带的表(10个表)

auth_group
auth_group_permission
auth_permission
auth_user      #用来存储后台登录的用户名和密码
auth_user_groups
auth_user_user_permission
django_admin_log
django_content_type
django_migrations
django_session

6.创建超级用户

(1)在terminal中执行命令

python manage.py  createsuperuser

(2)输入用户名、邮箱、密码

(djangoenv) D:\PythonFile\Third\wordspace\django\dayT>python manage.py createsuperuser
Username (leave blank to use 'administrator'): admin      #这里用户名命名admin
Email address: [email protected]							#邮箱随意
Password:										#密码输入无回显这里设置123123
Password (again):

7.登录后台

浏览器中进入http://127.0.0.1:8000/admin/

输入用户名和密码可登录Django后台

你可能感兴趣的:(Python)