zoukankan      html  css  js  c++  java
  • 最精简的django程序

    一、程序框架

    1、结构图

      

    2、settings.py

       1)指明templates路径

    import os
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    
    TEMPLATE_DIRS = (
        os.path.join(BASE_DIR, 'templates'),
    )

       2)修改数据库连接

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'django_db',
            'USER': 'root',
            'PASSWORD': 'feng',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }

    二、源码(MVC

      1、urls.py

    from django.conf.urls import patterns, url, include
    
    urlpatterns = patterns('',
        (r'^latest_books/$', 'django_web_app.views.latest_books'),
    )

      2、models.py——M

    from django.db import models
    
    class Book(models.Model):
        name = models.CharField(max_length=50)
        pub_date = models.DateField()

       1)创建django_db数据库

       2)ctrl+alt+r:sql

       

       3)ctrl+alt+r:syncdb

       同步到数据库

       运行后控制台输出结果:

    Creating tables ...
    Creating table django_admin_log
    Creating table auth_permission
    Creating table auth_group_permissions
    Creating table auth_group
    Creating table auth_user_groups
    Creating table auth_user_user_permissions
    Creating table auth_user
    Creating table django_content_type
    Creating table django_session
    Creating table django_web_app_book
    
    You just installed Django's auth system, which means you don't have any superusers defined.
    Would you like to create one now? (yes/no): yes
    Username (leave blank to use 'administrator'): admin
    Email address: edisonfeng1988@gmail.com
    Warning: Password input may be echoed.
    Password: admin
    Warning: Password input may be echoed.
    Password (again): admin
    Superuser created successfully.
    Installing custom SQL ...
    Installing indexes ...
    Installed 0 object(s) from 0 fixture(s)
    
    Process finished with exit code 0

      运行后的数据库结构:

      

      PS:实际上可以重复执行以上动作,原先已经创建且录入数据的表不会被覆盖

      3、latest_books.html——V

    <html><head><title>Books</title></head>
    <body>
    <h1>Books</h1>
    <ul>
    {% for book in book_list %}
    <li>{{ book.name }}</li>
    {% endfor %}
    </ul>
    </body></html>

      4、views.py——C

    #coding:utf-8
    from django.shortcuts import render_to_response
    from models import Book
    
    def latest_books(request):
        #倒叙获取最新出版的10本书
        book_list = Book.objects.order_by('-pub_date')[:10]
        return render_to_response('latest_books.html', {'book_list': book_list})

    三、测试

      1、录入测试数据

      

      2、配置测试初始页面

      

      3、运行结果:

      

      附:由于内置应用服务器默认只能本机连接,若需要从其他ip访问,需要修改如下设置:

      

        如果urls.py中没有映射任何视图,访问8000端口时会跳到django欢迎页面:

    from django.conf.urls import patterns, url, include
    
    urlpatterns = patterns('',
    )

      

  • 相关阅读:
    js处理json数据,java处理json数据
    sqlmap中##和$$的区别
    tar.gz和bin,以及rpm,deb等linux后缀的文件的区别
    ibatis内置类型
    1099端口被占问题
    动态代理与静态代理的区别
    条款36:绝不重新定义继承而来的non-virtual函数(Never redefine an inherited non-virtual function)
    条款35:考虑virtual函数以外的其他选择(Consider alternative to virtual functions)
    条款34:区分接口继承和实现继承(Different between inheritance of interface and inheritance of implemenation)
    工作好习惯(18之后)
  • 原文地址:https://www.cnblogs.com/edisonfeng/p/3750159.html
Copyright © 2011-2022 走看看