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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容