xml地图|网站地图|网站标签 [设为首页] [加入收藏]
django中自定义标签和过滤器,应用开发之WinForm环
分类:编程

本章简言

 

想要实现自定义标签和过滤器需要进行准备工作:

上一章笔者讲到关于IO文件操作类,了解如何处理文件流。从这一章开始笔者将讲解相对比较高级的知识点。而本章笔者就对WinForm开发的知识点进行讲解和引导。现在很多业务都是面向于B/S模式的开发,JAVA也不另外。所以JAVA的程序员对J2EE部分的知识非常了解。却对J2SE的知识点半知半解。甚至有一些只是听过而以。笔者在进入JAVA企业开发之前也曾用过Awt和Swing开发PC端的应用程序。类似于库存管理和企业通信等应用。相信做过的人都明白——小小的一个业务就花掉很多时间才能开发出来。了解C#的WinForm开发你就会发现PC端的软件还是C#比较合适。另外从本章开始笔者希望JAVA读者们能开始切换学习思路。不要在以JAVA那边的知识来学习了。因为笔者有过C#写出JAVA的代码。

Python教程

1 在某个app下创建一个名为templatetags(必需,且包名不可变)的包。假设我们在名为polls的app下创建了一个templatetags的包,并在该包下创建了一个名为mytags的文件。那么目录结构看起来应该就像这样:

第一个WinForm应用
kingadmin/
__init__.py
models.py
templatetags/
    __init__.py
    mytags.py
views.py

让我们新建一个WinForm项目。然后来学习WinForm是如何开发的。选择Visual Studio开发工具的“文件”》“新建”》项目。

2 setting文件按中的INSTALLD_APPS内必须含有该app。接下来,我们需要确认settings文件中的INSTALLED_APPS变量中已经有了kingadmin

图片 1

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'CRM',
'student',
'king_admin',
]

上面的图片相信大家都不陌生了吧。点击“确定”按扭。生成项目如下

3 接下来在mytags文件中写入如下几行

图片 2

from django import template

register = template.Library()

关于项目结构笔者就不多说了。在《Java进击C#——项目开发环境》章节里面已经讲解过大部分了。不清楚的读者可以去看看。这边俩个到是没有讲解过。如下

4 在模板中使用{% load %} 标签装载自定义标签或者装饰器

Form1.cs文件:这个就是一个窗体。JAVA的JFrame不知道你清楚。有一点类似了。

 {% load mytags %}

Program.cs文件:这里面存放了应用的入口方法。

自定义标签

自定义标签分为很多类型

  1 简单标签 Simple tags
  2 内含标签 Inclusion tags
  3 分配标签 Assignment tags

首先让我们看一下Program.cs文件里面代码吧。让我们了解一下C#入口的时候都做了些什么。

一 简单标签

from django import template

register = template.Library()

@register.simple_tag()
def render_app_name(admin_class):
        return admin_class.model._meta.verbose_name
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Windows.Forms;
 5 
 6 namespace WinFormExample
 7 {
 8     static class Program
 9     {
10         /// <summary>
11         /// 应用程序的主入口点。
12         /// </summary>
13         [STAThread]
14         static void Main()
15         {
16             Application.EnableVisualStyles();
17             Application.SetCompatibleTextRenderingDefault(false);
18             Application.Run(new Form1());
19         }
20     }
21 }

html内容

{% load tags %}

<td>{% render_app_name admin %}</td>

上面的代码都是自动生成的。那么可不可以改动呢?当然可以了。上面的Application.Run方法我们很容易就看懂了。实例化一个窗体对象new Form1()。Run方法就是运行这个窗体。那么上面的EnableVisualStyles方法和SetCompatibleTextRenderingDefault方法呢?笔者只能按F12进去看了。

     //
        // 摘要: 
        //     启用应用程序的可视样式。
        public static void EnableVisualStyles();

      //
        // 摘要: 
        //     将某些控件上定义的 UseCompatibleTextRendering 属性设置为应用程序范围内的默认值。
        //
        // 参数: 
        //   defaultValue:
        //     用于新控件的默认值。如果为 true,则支持 UseCompatibleTextRendering 的新控件使用基于 GDI+ 的 System.Drawing.Graphics
        //     类进行文本呈现;如果为 false,则新控件使用基于 GDI 的 System.Windows.Forms.TextRenderer 类。
        //
        // 异常: 
        //   System.InvalidOperationException:
        //     您只能在 Windows 窗体应用程序创建第一个窗口之前调用此方法。
        public static void SetCompatibleTextRenderingDefault(bool defaultValue);

看到官方的说明。笔者还是有一点不明白。所以笔者就把第一方法(EnableVisualStyles)给注解掉。看看会发生什么。结果运行通过了。不过长像有一点怪。如下

注解掉之前

图片 3

注解掉之后

图片 4

看到了吧。按扭显示效果有一点不一样子。也许这就是可视样式吧。当然,网络上有一种说法是这样子:EnableVisualStyles方法表示如果控件和操作系统支持视觉样式,则控件将以视觉样式进行绘制。那么SetCompatibleTextRenderingDefault方法呢。看了官方的说明就知道要去了解一下关于Graphics类和TextRenderer类的区别了。俩者都是控制控件上文本呈现的问题。具体如何我觉得读者们还是自己去找。网络上也有相关的资料。如果不懂也没有事。因为这并不影响你企业上的开发。

说了这么多却没有讲到如何增加扭按在窗体里面。这个就是Visual Studio的强大之处。一但你进入WinForm开发就必须要了解一个视图——工具箱。一般的情况工具箱是在Visual Studio的左边。但是这里有一点要注意。如果你选择了工具箱却没有选中窗体的话。那么工具箱里面什么也没有。所以请双击Form1.cs文件。这个时候左边就会自动切换到工具箱。如图下

本文由澳门新葡亰手机版发布于编程,转载请注明出处:django中自定义标签和过滤器,应用开发之WinForm环

上一篇:常用查询操作符,非中文自动翻译 下一篇:没有了
猜你喜欢
热门排行
精彩图文