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']
Django开发笔记一的更多相关文章
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
- Django开发笔记五
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.页面继承 定义base.html: <!DOC ...
- Django开发笔记四
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.邮箱激活 users app下,models.py: ...
- Django开发笔记三
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.基于类的方式重写登录:views.py: from ...
- Django开发笔记二
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...
- Django开发笔记(一)
Django开发笔记(一) 标签(空格分隔): Django Python 1. 创建并运行Django项目 创建开发环境 安装Django pip install django==version 执 ...
- Django开发笔记之数据库的设计
后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原 ...
- Django开发笔记
django基础之视图 1.在Django中网页前端的页面和其他内容都是由视图来传递的(视图对web请求进行回应)Django通过检查请求的URL(准确地说,是URL里域名之后的那部分)来选择使用哪个 ...
- django 开发笔记1
1.布置到云服务器 使用 python3 manage.py runserver提示错误,需要将settings.py 中 ALLOWED_HOSTS 字典中加入 localhost;0.0.0.0; ...
随机推荐
- TiKV 源码解析系列文章(三)Prometheus(上)
本文为 TiKV 源码解析系列的第三篇,继续为大家介绍 TiKV 依赖的周边库 rust-prometheus,本篇主要介绍基础知识以及最基本的几个指标的内部工作机制,下篇会介绍一些高级功能的实现原理 ...
- pandas的筛选功能,跟excel的筛选功能类似,但是功能更强大。
Select rows from a DataFrame based on values in a column -pandas 筛选 https://stackoverflow.com/questi ...
- loj #116. 有源汇有上下界最大流
题目链接 有源汇有上下界最大流,->上下界网络流 注意细节,重置cur和dis数组时,有n+2个点 #include<cstdio> #include<algorithm> ...
- hdu3072 Intelligence System (最小树形图?)
题意:给一个有向图,问要从0号点能到达所有点所需要经过路径的最小权值和是多少,然而,若两点强联通,则这两点互相到达不需要花费.保证0号点能到达所有点 tarjan缩点以后直接取每个点入边中花费最小的即 ...
- Mysql服务器处理客户端请求流程
在日常执行mysql语句的过程中,都是客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果). 看似很简单,其实不然,这内容有很多东西是需要注意的 ...
- Android学习系列(17)--App列表之圆角ListView(续)
http://www.cnblogs.com/qianxudetianxia/archive/2011/09/19/2068760.html 本来这篇文章想并到上篇Android学习系列(16)- ...
- 【uoj336】【清华集训2017】无限之环
题目 描述 给出一个\(n*m\)的网格,每个格子里的水管可能向四个方向都有接口: 游戏的目的是不能让水管漏水,即所有接口都有另一个接口与之相接: 你一步可以将一个格子中的水管旋转\(90 ...
- CF 989
今天晚上闲来无事打了一场CF......div.2,第600名.太弱了. T1看懂题之后发现是水题(废话),6min AC. T2仔细思考之后发现可做,但是由于n=p的特判没确定到底有没有解,WA了一 ...
- 洛谷P4364 IIIDX
题意:给定n个数和k,把n个数排成序列,满足ai >= ai/k,并使之字典序最大. 解:毒瘤线段树贪心... 以i/k为i的父亲构树. 当这n个数不同的时候,直接后序遍历贪心即可. 正解神奇的 ...
- 关于pascal退出acm/icpc历史
应该是很久之前的事情了,现在我才知道,有些信息滞后了,本还以为这是最近的事情呢.而2019年noip也将取消pascal,一切成为历史, 想想初中/高中阶段整片地区的使用pascal,c/c++/ja ...