Django之admin

一:配置文件(settings.py)

1、INSTALLED_APPS

INSTALLED_APPS = [
	'django.contrib.admin',
 	'django.contrib.auth',
	'django.contrib.contenttypes',
 	'django.contrib.sessions',
	'django.contrib.messages',
	'django.contrib.staticfiles',
	]

2、在BASE_DIR目录下创建static文件夹

STATIC_URL = '/static/'
STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')

3、添加用户身份认证

# 指定Django是被用户身份的类
AUTHENTICATION_BACKENDS = [
 	'users.utils.UsernameMobileAuthBackend',
]

二:路由(urls.py)

urlpatterns = [
	path('admin/', admin.site.urls),
	]

三:users子应用下创建utils.py文件并添加以下内容

import re

from django.contrib.auth.backends import ModelBackend

from .models import User

def get_user_by_account(account):
	"""
	根据帐号获取user对象
	:param account: 账号,可以是用户名,也可以是手机号
	:return: User对象 或者 None
 	"""
	try:
    	if re.match('^1[3-9]\d{9}$', account):
        	# 帐号为手机号
        	user = User.objects.get(mobile=account)
    	else:
       	 	# 帐号为用户名
        	user = User.objects.get(username=account)
	except User.DoesNotExist:
    	return None
	else:
    	return user


class UsernameMobileAuthBackend(ModelBackend):
	"""
	自定义用户名或手机号认证
	"""

	def authenticate(self, request, username=None, password=None, **kwargs):
    	user = get_user_by_account(username)
    	if user is not None and user.check_password(password):
        	return user

四:在子应用的admin.py添加指定的Model,例:

from django.contrib import admin

from users.models import OtherModel

# 方法一:
admin.site.register(OtherModel)
# 方法二:
@admin.register(OtherModel)
class OtherModelAdmin(admin.ModelAdmin):

	# 列表展示的字段
	list_display = ('project_name', 'specifications_unit', 'number_n', 'amount_money', 'create_date')

	# 筛选器
	# list_filter = ('trouble', 'go_time', 'act_man__user_name', 'machine_room_id__machine_room_name')  # 过滤器
	search_fields = ('project_name',)  # 搜索字段

五:用以下命令收集静态文件

python manage.py collectstatic

setting.py的以下配置决定能否收集成功
*STATIC_ROOT = os.path.join(BASE_DIR, '/static/') #正确
*STATIC_ROOT = os.path.join(BASE_DIR, 'static') #错误

完成!!!!!!!!

七:部署到服务器上需更改nginx.conf文件
例如:
项目文件在服务器上的 /home/www文件夹下,static文件夹在csdn/csdn/csdn下
nginx.conf的配置如下:

server {
	……省略……
	location /static {
  		root /home/www/csdn/csdn/csdn;
		}
	……省略……
	}

重启nginx

在nginx/sbin下执行以下命令
./nginx -s reload

重启项目(我用的是uwsgi + nginx部署的,这里重启uwsgi.ini)

在项目中找到uwsgi.pid执行以下命令
uwsgi --reload uwsgi.pid

在这里插入图片描述
成功!!!

***别忘记创建超级用户
首选创建一个新用户,用来登录Django管理网站,进入manage.py目录下,使用如下命令来进行创建:

python manage.py createsuperuser

接下来输入用户名称:

Username: admin

然后是输入邮箱(QQemail等都可以):

Email address:(输入你的邮箱账号)

输入密码(输入密码时不会显示出来,并且长度必须超过八位才行):

Password:******** 
Password(again):********

当两次密码输入相同且超过八位的时候,就会提示创建超级用户成功:

Superuser created successfully.

再次运行你的服务,输入账号和密码就可以成功登陆了:

python manage.py runserver

*******nginx.conf配置文件里第一行用户权限问题会影响静态文件的访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值