`
lbxhappy
  • 浏览: 307408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

django 示例

阅读更多
官网上的tutorial就不说了,这个肯定是要先看的。

下面以一个创建用户的例子来说明model, form和view的使用。注意这里不是用自动的admin功能。而是手动写MVC来添加用户。

首先要创建一个project. 我是在WINDOWS上做的,所以都有python命令,LINUX可以忽略这个。

python django-admin.py startproject mysite

创建一个app。

python manage.py startapp usermgmt

然后是创建model。

在mysite/usermgmt下创建一个文件models.py

class User(models.Model):
    ## Fields
    username = models.CharField(max_length = 32, verbose_name = u'用户名');
    password = models.CharField(max_length = 20, verbose_name = u'密码');
    gender = models.IntegerField(choices = GENDER, verbose_name = u'性别');
    mobilePhone = models.CharField(max_length = 11, verbose_name = u'手机号码');
    telephone = models.CharField(max_length = 8, verbose_name = '电话号码');
    city = models.IntegerField(choices = CITIES, verbose_name = '所在城市');
    email = models.EmailField(unique = True, verbose_name = 'Email');
    msn = models.EmailField(verbose_name = 'MSN');
    qq = models.IntegerField(verbose_name = 'QQ');
    registerTime = models.DateField(verbose_name = u'注册时间');

    verify = models.ForeignKey(Verify, verbose_name = u'验证码'); ## foreign key
    isActivated = models.BooleanField(verbose_name = u'是否激活');
    isLocked  = models.BooleanField(verbose_name = u'是否被锁定');
    lastLoginTime = models.DateTimeField(verbose_name = u'上次登录时间');
    lastLoginIP = models.IPAddressField(verbose_name = u'上次登录IP');
    totalLoginCount = models.IntegerField(default = 0, verbose_name = u'总计登录次数');
    totalPostCount = models.IntegerField(default = 0, verbose_name = u'总计发布信息数');

    reportedCount = models.IntegerField(default = 0, verbose_name = u'总计被举报数');

    ## Methods
    def __unicode__(self):
        return self.username;

    def get_absolute_url(self):
        return "/userapi/%i/" % self.id;

有了model,就要创建对应的form。其实这不是必须,不过既然django提供了对form的简化处理,就该好好利用。

同样在mysite/usermgmt下创建一个文件forms.py

from django.db import models;
from django.forms import ModelForm;


class UserForm(ModelForm):
    class Meta:
        model = User;
        exclude = ('registerTime', 'isActivated', 'isLocked', 'lastLoginTime', 'lastLoginIP',
                'totalLoginCount', 'totalPostCount', 'reportedCount');

exclude值表示这些字段在页面呈现的时候并不显示。注意,页面中也不会出现这些字段的隐藏字段。

然后我们就可以创建对应的view处理程序了。

在mysite/usermgmt下创建一个文件views.py

from django.http import HttpResponse;
from django.forms import ModelForm;

from django.shortcuts import render_to_response;
from usermgmt.models import *;
from usermgmt.forms import *;


def newuser(request):
    form = None;

    if request.POST:
        user = User();
        form = UserForm(request.POST, instance = user);

        if form.is_valid():
            form.save();
            return render_to_response('usermgmt/newuser.html',
                    {
                        'form': form,
                        'msg': 'User added successfully!',
                    });
    else:
        form = UserForm();
        return render_to_response('usermgmt/newuser.html', {'form': form,});


MVC都全了么?没,还有newuser.html,这个页面模板。

在mysite下创建一个文件夹叫 templates,然后在里面创建一个文件夹叫usermgmt。因为一个django的project是可以包含多个app的,所以给不同的app建立不同的文件夹是比较好的选择。然后在里面创建一个newuser.html。内容极其简单。

<html>
    <head>
        <title>User register</title>
    </head>
    <body>
        <form method="post" action="">
            <table>
                {{ form }}
            </table>
            <input type="submit" value="Submit"/>
            <div>{{ msg }}</div>
        </form>
    </body>
</html>

现在万事俱备,就剩改一些settings了。

因为我们添加了一个新的app,所以在mysite/urls.py中需要修改成:

from django.conf.urls.defaults import *

from django.contrib import admin;
admin.autodiscover();

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('HouseRentPrj.HouseRent.views',
    # Example:
    # (r'^HouseRentPrj/', include('HouseRentPrj.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^HouseRent/', include('mysite.usermgmt.urls')),
    (r'^admin/', include(admin.site.urls)),
)

在settings.py中,INSTALLED_APPS中要加上mysite.usermgmt.

TEMPLATE_DIRS加上刚才的模板路径,注意这里必须是绝对路径。

上面这些修改相当于添加了这个app。

而URL映射是要在具体的app的urls.py中来修改的。

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('HouseRentPrj.HouseRent.views',
    # Example:
    # (r'^helloworld/', include('helloworld.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^newuser/$', 'newuser'),
)

这样就好了,python manage.py runserver

然后在浏览器中输入 http://127.0.0.1:8000/mysite/newuser/试试。
分享到:
评论

相关推荐

    tutsplus的django示例代码

    【标题】"tutsplus的django示例代码"是一份基于Django框架的教程实践项目,由知名在线教育平台Tutsplus提供。这个项目旨在帮助开发者深入理解和掌握Django的各种功能和最佳实践。 【描述】提到,这个示例代码覆盖了...

    demo-allauth-bootstrap, Django 示例应用程序,包括通过 Django AllAuth提供社会认证的用户.zip

    demo-allauth-bootstrap, Django 示例应用程序,包括通过 Django AllAuth提供社会认证的用户 demo-allauth-bootstrap简单,out-of-the-box Django 网站带有访问者( 无登录) 区域和用户( 需要登录) 区域,它的中注册...

    Django示例代码

    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so ...

    Django说明及示例

    ### Django概述及应用实例 #### 一、Django框架简介 **Django** 是一个用 Python 编写的高级 Web 框架,它遵循模型-视图-模板(Model-View-Template,MVT)的设计模式。Django 的设计目标是简化 Web 开发流程,并...

    Python编程从入门到实践第20章Django示例项目代码

    学习这个示例项目,你将能理解Django的工作原理,掌握Web开发的基础,同时也能为今后更复杂的项目打下坚实基础。记得在实践中不断尝试和学习,遇到问题时查阅官方文档或在线社区,你将逐步成为Django和Python的高手...

    Python编程从入门到实践第18、19章Django示例项目代码

    在本资源中,我们主要关注的是使用Python编程语言和Django框架进行Web开发。Django是基于Python的一个高级Web框架,它遵循模型-视图-控制器(MVC)设计模式,旨在让开发者能够快速地构建功能完备且安全的Web应用程序...

    基于Django3.0.5+Python3.7+SQLite的博客系统源码.zip

    基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于Django3.0.5+Python3.7+SQLite的博客系统源码 基于...

    Django示例:Django使用

    **Django示例:Django使用** Django是Python领域中最受欢迎的Web开发框架之一,以其高效、安全和可扩展性著称。本教程将深入探讨Django的使用,包括项目创建、应用设置、数据库模型、视图、模板以及URL路由等方面。...

    django-user-profile:Django用户个人资料-开源Django示例| 应用种子

    Django示例项目,允许注册用户编辑其个人资料。 该代码在 (原始启动程序)上提供, 是受欢迎的开源Djaango启动程序。 状态:@WIP 特征 支持UI的应用程序,SQLite数据库,Django本机ORM 基于会话的身份验证,表单...

    django-12factor-docker:django示例项目展示了使用docker的12因子架构

    django-12factor-docker django示例项目展示了使用docker的12因子架构。配置在正确启动整个环境之前,需要先进行一些基本配置。 配置文件位于conf文件夹中,并且使用语法KEY = VALUE ,每行应包含一个环境变量定义。...

    django-fullstack:全栈 django 示例项目构建在多个 docker 容器上,可用于开发和生产

    django-fullstack 全栈 django 示例项目构建在多个 docker 容器上,可用于development和production 。 电池postgres (带有postgis和hstore扩展) nginx gunicorn redis celery rabbitmq 创建自己的git clone git@...

    elastic-beanstalk-nginx-uwsgi-django:一个在AWS Elastic Beanstalk上运行uWSGI和Nginx的Django示例应用程序

    弹性豆茎-nginx-uwsgi-django 在AWS Elastic Beanstalk上运行uWSGI和Nginx的Django示例应用程序。 $ eb init$ eb create ebsample-env -p "Python 2.7" --single --sample设置环境属性: $ eb setenv ALLOWED_HOSTS=...

    pydev django示例

    【PyDev与Django简介】 PyDev是一款强大的Python开发环境,它是Eclipse集成开发环境(IDE)的一个插件,专为Python、Jython和IronPython编程提供支持。PyDev提供了许多高级特性,如代码自动完成、语法高亮、调试器...

    基于 vue3 + vite2 + django 的小区管理平台(优质项目)

    基于 vue3 + vite2 + django 的小区管理平台(优质项目)适用人群:计算机,软件工程、人工智能,电子信息等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 基于 vue3 + vite2 + django 的...

    django-ex:Django示例

    Openshift快速入门:Django 这是一个项目,您可以以此为起点来开发自己的项目并将其部署在集群上。 注意:此版本包含与RHEL / Centos 7一起使用的过时的Django 1.11.x LTS。请考虑在使用Django 2.2.x LTS切换到...

    ecs-fargate-sample-app:用于ecs fargate部署的django示例应用程序

    ecs-fargate-sample-app django示例应用程序演示ecs fargate部署 请参阅以下博客文章。 对于CDK部署,请参考以下链接。

    Python Django Demo项目

    【Python Django Demo项目】...这个Django示例项目是一个基础的Web应用,通过它你可以学习到Django的基础架构和工作流程。随着学习深入,你还可以涉及更多高级特性,如用户认证、表单处理、中间件、自定义管理界面等。

    django项目实战之图书馆大数据可视化分析系统(源码+说明+演示视频).zip

    源码亲测可用,可做...python+Django+mysql 【实现功能】 本系统主要分为前台和后台两大功能,前台包括首页、图书列表、数据可视化、关于和后台管理。后台主要包括首页、权限认证、图书管理和借阅管理及学生管理。

    django-react-polls-example:Django中React的示例实现

    Django React Polls示例这是Django中完全由React渲染的前端的示例实现它旨在作为Django见面会演讲的参考。 您可能会发现的很有帮助安装Django的克隆回购安装python要求并使用pipenv sync && pipenv shell激活...

    Python-H5和Native无缝调用的Hybrid框架Django实现的Demo页面

    在Django示例中,这可能通过自定义的JavaScript库或者使用像Cordova这样的第三方库来实现。当JavaScript发出请求时,WebView会捕获并转发到相应的原生方法,执行完成后将结果返回给JavaScript,从而完成调用。 为了...

Global site tag (gtag.js) - Google Analytics