zoukankan      html  css  js  c++  java
  • Django开发笔记一

    Django开发笔记一

    Django开发笔记二

    Django开发笔记三

    Django开发笔记四

    Django开发笔记五

    Django开发笔记六

    1、运行

    python manage.py runserver 0.0.0.0:8000
    

    2、添加app

    在pycharm的工具栏找到 Tools,点击之后会有“Run manage.py task”选项进入终端

    startapp app_name
    

    app添加到文件夹apps下

    新建apps文件夹,markas sourse root

    settings.py中

    import os
    import sys
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
    

    3、生成默认数据库

    在2的终端中:

    makemigrations
    migrate
    

    makemigrations会记录修改的models.py,并且在migrations生成记录文件,此时数据库未作修改

    migrate会把修改同步到数据库

     

    4、添加 Django administration

    python manage.py createsuperuser

    root root@qq.com rootroot

    访问 http://127.0.0.1:8000/admin/ 进入

    5、user继承AbstractUser

    users app下models.py

    class UserProfile(AbstractUser):
        nickname = models.CharField(max_length=50, verbose_name=u"昵称")
        birthday = models.DateField(max_length=50, null=True, blank=True, verbose_name=u"生日")
        gender = models.CharField(choices=(("male", u"男"), ("female", u"女")), default=u"female", max_length=10)
        address = models.CharField(max_length=100, default=u"")
        mobile = models.CharField(max_length=11, null=True, blank=True)
        image = models.ImageField(upload_to="images/upload/user/%y/%m", default=u"images/default/user_default.png", max_length=100)
    
        class Mate:
            verbose_name = u"用户信息"
            verbose_name_plural = verbose_name
            ordering = ["-id"]
    
        def __unicode__(self):
            return self.username
    

     admin.py

    from django.contrib import admin
    
    # Register your models here.
    
    from users.models import UserProfile
    
    
    class UserProfileAdmin(admin.ModelAdmin):
        pass
    
    admin.
    

     settings.py

    AUTH_USER_MODEL = "users.UserProfile"
    

     修改之后发现后台访问报错: 'WSGIRequest' object has no attribute 'user'

    修改

    MIDDLEWARE 改为 MIDDLEWARE_CLASSES
    

    6、xadmin使用

    pip install xadmin
    pip list
    

     settings.py中INSTALLED_APPS添加:

        'xadmin',
        'crispy_forms',
    

     url.py中:

    import xadmin
    
    urlpatterns = [
        url(r'^xadmin/', xadmin.site.urls),
    ]
    

     之前admin.py

    from django.contrib import admin
    
    # Register your models here.
    
    # from users.models import UserProfile
    #
    #
    # class UserProfileAdmin(admin.ModelAdmin):
    #     pass
    #
    # admin.site.register(UserProfile,UserProfileAdmin)
    

     7、xadmin添加模块

    在app下新建adminx.py代替admin.py

    # coding=utf-8
    
    import xadmin
    from .models import EmailVerifyRecord
    
    
    class EmailVerifyRecordAdmin(object):
        pass
    
    
    xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
    

     这样就把models.py中的模块添加进后台管理

    class EmailVerifyRecord(models.Model):
        code=models.CharField(max_length=20,verbose_name=u"验证码")
        email=models.EmailField(max_length=50,verbose_name=u"邮箱")
        send_type=models.CharField(verbose_name=u"发送类型",choices=(("register",u"注册"),("forget",u"忘记密码"),("update_email",u"修改邮箱")),max_length=50)
        send_time=models.DateTimeField(verbose_name=u"发送时间",default=datetime.now)
    
    
        class Meta:
            verbose_name=u"邮箱验证码"
            verbose_name_plural = verbose_name
    
        def __unicode__(self):
            return '{0}({1})'.format(self.code,self.email)
    

     用户模块自动会加入,不需要添加

    8、定义列表显示的字段

    修改以上xadmin.py的内容

    class EmailVerifyRecordAdmin(object):
        list_display = ['code', 'email', 'send_type', 'send_time']
    

     9、定义搜索的字段

    class EmailVerifyRecordAdmin(object):
       ...
        search_fields = ['code', 'email', 'send_type', 'send_time']
    

     10、添加过滤器增强搜索

    class EmailVerifyRecordAdmin(object):
    ...
        list_filter = ['code', 'email', 'send_type', 'send_time']
    
  • 相关阅读:
    本周学习进度条2
    web—图表表示数据库中的数据
    Intern Day36
    计算机网络
    面试
    C++
    计算机网络
    腾讯PC客户端开发暑期实习一面
    TCP和UDP
    Intern Day34
  • 原文地址:https://www.cnblogs.com/lanqie/p/7644415.html
Copyright © 2011-2022 走看看