Django实战(4):scaffold生成物分析

从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)   在这部分,我将从Django的安装讲起,从创建项目到制作一个简单的页面(跑通流程),再到加入网页,介绍Django的模板语法。最后利用所学完成一个小的网页展示。   1. 安装Django 2. 创建项目(startproject) 2.1 创建项目 2.2 介绍项目文件 2.3 APP(startapp) 3. 走通流程(urls, views, runserver) 3.1 第一个页面 3.2 多个页面 4. 网页 4.1 加入网页(templates, render) 4.2加入图片、css、js 阅读详情
在 上一节用一个插件生成了类似rails的scaffold,其实无非就是URLconf+MTV。让我们看看具体都生成了哪些东西。
首先是“入口”的定义即URLconf,打开urls.py:
from django.conf.urls.defaults import patterns, include, url
from depot.views import hello

urlpatterns = patterns('',
     url(r'^hello/ hello),
)
urlpatterns += patterns ('',
 (r'^depotapp/', include('depotapp.urls')),
)

上面的代码中增加的配置行表示:以depotapp开头的url由depotapp/urls.py文件进行处理。

django的url配置中,除了(正则表达式,view函数)的方式外,还支持(正则表达式,include文件)的方式。通常把app自身相关的url写到自己的url配置文件中,然后在project中引用。

接下来看一下生成的depotapp/urls.py的内容:

from django.conf.urls.defaults import *
from models import *
from views import *

urlpatterns = patterns('',
    (r'product/create/$', create_product),
    (r'product/list/$', list_product ),
    (r'product/edit/(?P<id>[^/]+)/$', edit_product),
    (r'product/view/(?P<id>[^/]+)/$', view_product),
)
将CRU(没有D)的URL映射到了视图。而视图在depotapp/views.py中定义:

from django import forms
from django.template import RequestContext
from django.http import HttpResponse, HttpResponseRedirect
from django.template.loader import get_template
from django.core.paginator import Paginator
from django.core.urlresolvers import reverse

# app specific files

from models import *
from forms import *


def create_product(request):
    form = ProductForm(request.POST or None)
    if form.is_valid():
        form.save()
        form = ProductForm()

    t = get_template('depotapp/create_product.html')
    c = RequestContext(request,locals())
    return HttpResponse(t.render(c))



def list_product(request):
  
    list_items = Product.objects.all()
    paginator = Paginator(list_items ,10)


    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1

    try:
        list_items = paginator.page(page)
    except :
        list_items = paginator.page(paginator.num_pages)

    t = get_template('depotapp/list_product.html')
    c = RequestContext(request,locals())
    return HttpResponse(t.render(c))



def view_product(request, id):
    product_instance = Product.objects.get(id = id)

    t=get_template('depotapp/view_product.html')
    c=RequestContext(request,locals())
    return HttpResponse(t.render(c))

def edit_product(request, id):

    product_instance = Product.objects.get(id=id)

    form = ProductForm(request.POST or None, instance = product_instance)

    if form.is_valid():
        form.save()

    t=get_template('depotapp/edit_product.html')
    c=RequestContext(request,locals())
    return HttpResponse(t.render(c))

视图中的相关内容比较多,主要的是模板,其次还有模型类、Paginator分页器、Form表单等等。

基本涵盖了典型的web应用交互的内容。


电磁仿真软件CST2020 下载链接及安装破·解教程笔记 众所周知,配环境是安装软件最头疼的事情。CST2020我调了一上午,网上现有的安装教程良莠不齐,很难有一篇文章能够全流程的讲述安装过程以及遇到的问题。正好今天我要给另一台电脑装软件,借此机会把安装过程记录下来,以供将来使用和他人借鉴。 首先提供下载地址: 百度网盘 链接:https://pan.baidu.com/s/1cDJZelufj-nliUfekMNpEA 提取码:8ihx 附: 根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软 阅读详情

相关推荐

Python实战:用jieba和WordCloud打造电商评论情感分析工具(附完整代码)

本文详细介绍了如何使用Python的jieba分词和WordCloud库构建电商评论情感分析工具,涵盖数据预处理、情感分析、可视化展示等关键步骤,并提供完整代码实现。通过该工具,开发者可以高效分析电商评论数据,挖掘消费者情感倾向,为产品改进和决策提供数据支持。

weixin_30316097的博客 413

python django项目实战入门及项目实战

     本课程介绍如何使用 Djang。这个Web Framework在网络主机上架设一个全 功能的网站。Django 是一个由 Python 编写的具有完整架站能力的 Web 网站框架,通过这个框 架,只要短短几个指令, Python 的程序设计人员就可以轻松地建立一个正式网站所需要的骨架(框架),再从这个框架中开发出全功能的网站。     Python 语言充满了令人津津乐道的加速技巧,为了方便读者学习,本课程尽量使用初学者 容易理解的讲述方式,以期阅读本书的读者能够在最短的时间内跨过使用程序设计语言制作网 站的门槛,马上以 Python 建立 自己的特色网站,并在熟悉流程以及架构后,进一步提升网站 的性能。

长鑫存储面试真题解析:DRAM工程师的工程直觉与产线思维

DRAM作为现代计算系统的底层存储基石,其性能与可靠性高度依赖半导体物理基础、工艺窗口控制和电路-系统协同设计。理解电荷保持机制、位线电容耦合效应、信号完整性约束等核心原理,是突破传统数字IC思维、构建真实产线语感的关键。在晶圆厂级工程实践中,TEM缺陷识别、BIST空间聚类分析、Retention失效定位等能力,直接关联良率爬坡与客户系统稳定性。本文聚焦长鑫存储一线技术面试中高频出现的工艺-电路-测试三维问题,融合‘电荷保持’‘信号完整性’等热词,还原DRAM工程师必备的系统性建模能力与闭环验证思维,覆盖

weixin_34293246的博客 335

【实战】Django从零搭建个人网站

Django,零基础,网站,音乐

m0_48943965的博客 1万+

手把手式介绍 ADNI 影像数据下载

1.搜索 1.1登录 打开ADNI的官网:http://adni.loni.usc.edu/,进入下面的界面。 点击 DATA&SMPLES 下的 ACCESS DATA AND SAMPLES,如下图。 页面跳转以后点击中间的“LOGIN”,这时会跳出一个新的界面,然后在右上角输入自己的帐号、密码即可。如果没有权限可以跳转到第2部分看看如何申请权限。 登录以后选择DOWNLOAD下的 Image Collections就是搜索下载影像数据,其他还有一些学习测试数据和遗传数据。 1.2 sea

永远想不起来更新的博客 1万+

std::map看来可以被淘汰了?可以用vector来替代,而且更好

vector的优势在于内存连续,可以先std::sort,然后std::lower_bound,或者std::binary_search。而std::map,insert的时候,需要new出内存。

tumu_C的博客 1019

Django框架实战教程

其中,`myproject`是你要创建的数据库名称,`root`是MySQL数据库的用户名,`password`是MySQL数据库的密码,`localhost`是MySQL数据库的主机地址,`3306`是MySQL数据库的端口号。现在,我们需要在 `blog` 应用程序中创建 `urls.py` 文件,并将其包含在主 URL 路由配置中。执行完毕后,你会在`myproject`目录下看到多了一个名为`myapp`的文件夹,其中包含了一个名为`views.py`的视图文件以及其他一些文件。

m0_75198698的博客 1743

SRAM故障排查实战:如何用Nano Prober定位6T存储单元的异常点

本文详细介绍了在SRAM故障排查中,如何运用Nano Prober(纳米探针)技术精准定位6T存储单元的内部异常。面对传统方法难以发现的电性参数漂移(如晶体管阈值电压偏移)或微小物理缺陷,Nano Prober能直接对单个6T单元内的晶体管进行I-V特性测量,结合失效模式分析,有效解决读写错误等疑难问题,是芯片失效分析的关键工具。

v5w6x的博客 664

Django项目实战学习笔记一、Django入门

目录前言1.准备流程2.开始项目3.创建应用程序流程4.创建网页。

jizhuanma的博客 483

三相SST固态变压器详细设计案例

本案例针对400kVA、30kHz三相固态变压器(SST)开展详细设计,核心采用输入串联输出并联(ISOP)拓扑架构(模块化多电平矩阵变换器M3C简化版),重点完成高频变压器的参数计算、绕组设计、损耗分析及液冷温升验证,同时覆盖系统级架构设计、半导体损耗估算及整机效率优化,全流程基于当前电力电子技术可行性展开。

qq_32103755的博客 3284

python实现纵横向拉开档次法 (附完整源码)

python实现纵横向拉开档次法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 776

Django Generic Scaffold 使用教程

Django Generic Scaffold 使用教程 1、项目介绍 Django Generic Scaffold 是一个用于快速生成 Django 模型 CRUD(创建、读取、更新、删除)接口的工具。它通过动态生成视图和 URL 路由,帮助开发者以最少的代码量为模型创建基本的 CRUD 界面。与 Django 自带的 admin 界面不同,Django Generic Scaffold 更适...

gitblog_00396的博客 692

03 - AMDGPU驱动架构概览

本文介绍了AMDGPU驱动的整体架构,重点分析其图形驱动(AMDGPU)和计算驱动(KFD)的双重结构。KFD驱动作为HSA架构的核心组件,包含进程管理、设备管理等模块,其中SVM功能在kfd_svm.c实现。文章详细解析了KFD的核心组件、初始化流程及字符设备接口,并阐述了TTM框架在GPU内存管理中的作用。通过架构图和代码片段展示了AMDGPU与KFD的协作机制,为后续深入理解SVM实现奠定基础。

图形/计算GPU的驱动与虚拟化技术分享园地 3356

Django实战(3):Django也可以有scaffold

rails有一个无用的”神奇“功能,叫做scaffold。能够在model基础上,自动生成CRUD的界面。 说它无用,是因为rails的开发者David说,scaffold”不是应用程序开发的目的。它只是在我们构建应用程序时提供支持。当你设计出产品的列表该如何工作时,你依赖于“支架”“生成器”产生创建,更新,和删除的行为。然后在保留这个“动作”时你要替换由“生成器”生成的行为。有时候当你需要一个

8480

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Django实战(3):Django也可以有scaffold - Holbrook - 博客园

Django实战(3):Django也可以有scaffold - Holbrook - 博客园 Django实战(3):Django也可以有scaffold - Holbrook - 博客园rails有一个无用的”神奇“功能,叫做scaffold。能够在model基...

90

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

快速构建Django Rest API的神器:dr_scaffold

快速构建Django Rest API的神器:dr_scaffold 在现代Web开发中,快速构建和迭代API是开发者们追求的目标。如果你是一名Django开发者,并且正在寻找一种能够快速生成Restful API的工具,那么dr_scaffold绝对是你的不二之选。本文将详细介绍dr_scaffold项目,分析其技术特点,并探讨其在实际开发中的应用场景。 项目介绍 dr_scaffold是一个专...

gitblog_00883的博客 425

推荐项目:django-generic-scaffold——快速构建CRUD界面的神器

推荐项目:django-generic-scaffold——快速构建CRUD界面的神器 在开发过程中,快速搭建后台管理或数据录入界面始终是一项繁琐但必不可少的任务。对于Django开发者来说,django-generic-scaffold正是解决这一痛点的利器。本文将从项目简介、技术分析、应用场景和项目特点四个方面全面剖析这一开源宝藏。 项目介绍 django-generic-scaffold 是...

gitblog_00242的博客 550

快速构建Django REST API的利器:dr_scaffold

快速构建Django REST API的利器:dr_scaffold 项目介绍 在现代Web开发中,快速构建高效、可维护的API是每个开发者的追求。dr_scaffold 是一个专为Django REST Framework设计的开源项目,旨在通过简单的命令行操作,快速生成完整的RESTful API资源。无论你是经验丰富的开发者还是初学者,dr_scaffold 都能帮助你节省大量时间,让你专注...

gitblog_00056的博客 401

djpython教程_浅析Django的dj-scaffold项目

由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此有一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。现在简单了解下这个项目的架构、使用。项目地址:https://github.com/vicalloy/dj-scaffold安装已经发布到了pypi,所以你可...

weixin_29035405的博客 158

pythondj教学_简单介绍Python的Django框架的dj-scaffold项目

由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。项目地址:https://github.com/vicalloy/dj-scaffold安装已经发布到了pypi,所以你可以用pip或easy_in...

weixin_39664994的博客 137
上一篇: Django实战(3):Django也可以有scaffold
下一篇: Django实战(5):引入bootstrap,设置静态资源
ThinkInside
博客等级 码龄19年 281粉丝 93原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值