美文网首页
(二)diango(1)- 搭建环境,简单环境介绍

(二)diango(1)- 搭建环境,简单环境介绍

作者: 足__迹 | 来源:发表于2019-09-25 18:58 被阅读0次

    Django

    • 简介:
      • 使用框架开发
        1.可以站在巨人的肩膀上
      1. 提高开发效率
      2. 只关注业务逻辑上的实现,不关心底层建设
    • 常用的框架Django 和 Flask
      • diango
      1. 大而全
      2. 入门简单
      3. 最流行
      • Flask
        1.轻量级
      1. 定制化程度高
      2. 流行
      3. 适合于老手

    diango的特点

    • 提供创建项目的自动工具
    • 数据库ORM支持
    • 模板
    • 表单
    • admin管理站点
    • 文件管理
    • 认证权限
    • session 机制
    • 缓存

    创建工程

    1. 创建虚拟环境(详情查看之前文章)
      • python -m venv 虚拟环境名
    2. 安装Django
      • 进入虚拟环境
        win:


        image.png
      • 安装Django(网络不好的可以用豆瓣源)

      pip install Django

    image.png
    1. 创建项目
    • 命令行创建:

      diango startproject 项目名
      创建于项目配置同名需要下项目名后加一个 “ .”
      diango startproject 项目名 .

    • 使用PyCjarm创建


      image.png
    1. 运行项目
    • python manage.py runserver
    • python manage.py runserver ip:端口

    目录结构

    setting : 项目全局配置文件
    urls: 生命全局的URL路由表
    wagi.py 兼容Wsgi的web服务器入口
    manage.py 和sjango交互的命令行工具

    • 修改项目主页语言


      image.png

    创建子应用

    1. 定义
    • 业务模块做到复用
    • 将工程项目拆分为不同的子功能模块
      • 以子应用的形式存在
        -各功能模块间可以相互的独立
    • 可以将该模块整体复制

    2.创建

    • python manage.py startapp 子应用名
    image.png

    3.注册

    • 在全局配置文件setting中的INSTALLED_APPS添加子应用


      image.png

    4.创建视图

    • 在子应用名/views.py中代码如下


      image.png

    5.添加路由

    • 在project/urls.py子路由文件
    • 全部路由urls中加载子路由信息


      image.png

    6.子应用结构
    migrations 用于数据库迁移历史记录
    admin 网站后台管理站点配置文件
    apps 用于配置当前子应用的相关信息
    models 保存数据库模型类
    test.py 编写单元测试
    views 用于编写web视图

    路由

    • 全局
    from django.contrib import admin
    from django.urls import path,include
    
    
    #全局路由配置信息
    # urlpatterns为固定名称的列表
    # 列表中的一个元素,就代表一条路由
    # 从上到下进行匹配,如果成功,django会导入和调用path函数第二个参数指定的视图获取去子路由中匹配
    # 如果匹配不上会抛出一个404(默认404页面,状态404)
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('index', include('Project.urls')),
    ]
    
    
    • 子路由
    from django.urls import path
    from  Project.views import index
    
    #子路由配置信息
    # urlpatterns为固定名称的列表
    # 列表中的一个元素,就代表一条路由
    # 从上到下进行匹配
    # 如果匹配不上会抛出一个404(默认404页面,状态404)
    
    urlpatterns = [
        path('', index),
    ]
    
    

    视图

    • 函数视图
    from django.http import HttpResponse
    from django.views import View
    
    # Create your views here.
    
    # 函数视图
    # 视图函数第一个参数一般默认为request
    
    
    def index(request):
        '''
         :param requext: # request是HTTprequest对象,白喊前端的所有请求信息
         :return:  必须返回一个HttpReponse对象或者子对象
        '''
        if request.method == 'GET':
           return HttpResponse('<h1>星空<h1>')
        elif request.method == "POST":
            return HttpResponse('<h1>黑夜<h1>')
        else:
            return HttpResponse('<h1>星星<h1>')
    
    

    路由设置

    image.png
    • 类视图
    #类视图
    class Indexview(View):
    
        def get(self,request):
    
            return HttpResponse('<h1>星空<h1>')
    
        def post(self,request):
            return HttpResponse('<h1>黑夜<h1>')
    
        def delete(self,request):
            return HttpResponse('<h1>星星<h1>')
    

    路由设置:


    image.png

    模板

    • templates
      1.创建一个html邮件
      image.png
      2,在视图中调用:
    from django.shortcuts import render
    from django.http import HttpResponse
    from django.views import View
    
    # Create your views here.
    
    # 函数视图
    # 视图函数第一个参数一般默认为request
    
    
    def index(request):
        '''
         :param requext: # request是HTTprequest对象,白喊前端的所有请求信息
         :return:  必须返回一个HttpReponse对象或者子对象
        '''
        if request.method == 'GET':
           return HttpResponse('<h1>星空<h1>')
        elif request.method == "POST":
            return HttpResponse('<h1>黑夜<h1>')
        else:
            return HttpResponse('<h1>星星<h1>')
    
    #类视图
    class Indexview(View):
    
        def get(self,request):
    
            # return HttpResponse('<h1>星空<h1>')
            # 从数据库中读取数据
            datas = [
                {'project':'11',
                 'leader':'22'},
                {'project': '33',
                 'leader': '44'},
            ]
            #locals将数据传入
            return  render(request,'test.html',locals())
        def post(self,request):
            return HttpResponse('<h1>黑夜<h1>')
    
        def delete(self,request):
            return HttpResponse('<h1>星星<h1>')
    
    

    MVT模式

    M : mode 负责和数据库交互
    V: View 接收请求
    T: Templace 负责构造返回的HTML页面


    image.png

    相关文章

      网友评论

          本文标题:(二)diango(1)- 搭建环境,简单环境介绍

          本文链接:https://www.haomeiwen.com/subject/mjqvuctx.html