zoukankan      html  css  js  c++  java
  • Django学习笔记1 启动及配置一个Django项目

    1. 创建一个Django项目,在命令行中先cd进入想存储代码的目录,

    django-admin.py startproject mysite

    2.启动开发用服务器 从外层mysite进入,运行

    python manage.py runserver
    

    获得输出如下内容:

    January 28, 2015 - 12:48:43
    Django version 1.7.3, using settings 'mysite1.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.

    3.数据库设置 编辑mysite/settings.py文件

    DATABASES = {
        'default': {
            #'ENGINE': 'django.db.backends.sqlite3',
            #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            'ENGINE': 'django.db.backends.mysql',
            'NAME':'djtest',
            'USER':'root',
            'PASSWORD':'123456',
        }
    }

    4.syncdb命令按照INSTALLED_APPS设置,并在setting.py所配置的数据库中创建必要的数据库表

    python manage.py syncdb

    然后在数据库中使用 show tables;就可以查看创建的表

    5创建模型:创建应用,与manage.py在同一目录下并输入以下命令

    python manage.py startapp polls

    将创建一个polls目录,有modles,views,tests

    6.在modles中写入

    class Poll(models.Model):
        question=models.CharField(max_length=200)
        pub_date=models.DateTimeField('date published')
        def __unicode__(self):
            return self.question
    
    class Choice(models.Model):
        poll=models.ForeignKey(Poll)
        choice_text = models.CharField(max_length=200)
        votes=models.IntegerField(default=0)
        def __unicode__(self):
            return self.choice_text
    
    class Publisher(models.Model):
        name=models.CharField(max_length=30)
        address=models.CharField(max_length=50)

    7.再次编辑settings.py

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'polls',
    )

    把polls(应用的目录)加入

    8.同步更新数据库,将model插入到数据库中

    $ python manage.py syncdb # wrong! because of migraition
    ues:
    $ python manage.py makemigrate
    $ python manage.py migrate

    进入mysql 可以发现这些表都创建好了

    9.最后将models加入到Admin管理中

    from django.contrib import admin
    
    # Register your models here.
    from polls.models import Poll,Publisher,Choice
    
    class AuthorAdmin(admin.ModelAdmin):
        list_display=('first_name','last_name','email')
        search_fields=('first_name','last_name')
    
    admin.site.register(Poll)
    admin.site.register(Publisher)
    admin.site.register(Choice)

    当一切配置好,发现Django 管理工具就而已运行,启动开发服务器

    python manage.py runserver

    在浏览器中欧你访问,就可以登录http://127.0.0.1:8000/admin/

    就可以看到数据库的表,可视化这些操作

    10. 进入python的交互式shell中玩弄- -Django给的API

    通过 databaseAPI来浏览数据

    python manage.py shell
    >>> from polls.models import Poll,Choice
    #系统中还没有Poll
    >>> Poll.objects.all() []
    #创建一个poll对象
    >>> from django.utils import timezone >>> p=Poll(question="What's new?",pub_date=timezone.now())
    #保存到数据库中必须调用save()方法
    >>> p.save() >>> p.id 1L >>> p.question "What's new?" >>> p.pub_date datetime.datetime(2015, 1, 28, 14, 41, 13, 272036, tzinfo=<UTC>)
    #更改数据再save
    >>> p.question="What's up" >>> p.save()

    #显示数据库中所有的poll 通过objects.all()函数 >>> Poll.objects.all() [<Poll: What's up>] >>>
    自定义管理表单,在admin.py中设置,可以是黑色之不同的显示顺序和,大小框标题

    class PollAdmin(admin.ModelAdmin):
        #fields=['pub_date','question']
        fields=[
            (None,              {'fields':['question']}),
            ('Date information',{'fields':['pub_date']}),
            ]
    
    
    
    admin.site.register(Poll,PollAdmin)


    添加关联的对象:

    class ChoiceInline(admin.StackedInline):
    model=Choice
    extra=3

    
    

    class PollAdmin(admin.ModelAdmin):
    #fieldset=['pub_date','question']
    fieldsets=[
    (None, {'fields':['question']}),
    ('Date information',{'fields':['pub_date'],'classes':['collapse']}),
    ]
    inlines=[ChoiceInline]

    
    
    
    
    

    admin.site.register(Poll,PollAdmin)

     
  • 相关阅读:
    hdu2089 不要62 (数位dp)
    LightOJ 1140
    在n到m中 有多少个1 (数位dp)
    Frequent Subsets Problem 状态压缩 判断出现的次数
    LightOj 1215
    LightOJ 1197
    Spring 知识点提炼
    设计模式—访问者模式
    设计模式—模板模式
    设计模式—策略模式
  • 原文地址:https://www.cnblogs.com/zzblee/p/4257324.html
Copyright © 2011-2022 走看看