# python-blog **Repository Path**: yyfei/python-blog ## Basic Information - **Project Name**: python-blog - **Description**: django5 + bootstrap5 写的简易博客 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-19 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 一、安装所需要的包 ``` pip install -r requirements.txt ``` ### 二、项目所用到的第三方库 #### 1. bootstrap5 前端 #### 2. wangeditor 富文本编辑器 #### 3. highlinght 代码高亮 ### 三、注意点 #### 3.1 后台系统 后台系统所用到的数据表和模块直接值auth 模块 1. 登录的时候直接调用的 django.contrib.auth 下面的login() 2. 退出系统直接调用的django.contrib.auth 下面的logout() 判断是否登录、全局登录用户、操作是否要求登录的验证 1. 判断是否登录 a. 在方法中直接判断 request.user.is_authenticated 就可以判断是否已经登录,但是比较繁琐,每个方法都需要写 b. 使用装饰器判断 from django.contrib.auth.decorators import login_required ,配置文件setting.py 增加配置文件 ``` # 验证是否登录,如果没有登录跳转的登录页面的URL LOGIN_URL = 'user:login' ``` 在方法中就能直接使用了 ``` # 这个方法就需要登录后才能访问,如果没有登录,就会跳转到配置文件中配置的路由地址页面(即登录页面) @login_required def fun: pass ``` 将应用注册到后台系统里面 1. 在app 应用里面有个 admin.py #### 3.2 限制请求访问方式 1. 使用装饰器 @require_http_methods(['GET','POST']) 或者使用里面的require_POST ``` from django.views.decorators.http import require_http_methods @require_http_methods def fun(request): pass ``` #### 3.3 数据分页 1. 先查询出符合条件的数据 2. 在创建分页器 3. 通过分页得到 数据总数,页码等数据 ``` from django.core.paginator import Paginator def fun(request,page): # 符合条件的数据 data=Bolog.objects.all() # page_num 每页显示多少条数据 paginator=Paginator(data,page_num) # page 第几页,获取第几页的数据 paginator.get_page(page) ``` ### 三、配置文件和静态文件配置 #### 1. 时区和语言配置 ``` # 汉字 LANGUAGE_CODE = 'zh-hans' # 默认时区 TIME_ZONE = 'Asia/Shanghai' USE_I18N = True # 关闭时区 USE_TZ = False ``` #### 2. 静态文件配置 ``` # 静态文件 STATIC_URL='static/' STATICFILES_DIR=[ BASE_DIR / 'static' ] # 上传的媒体文件 MEDIA_URL='media/' MEDIA_ROOT= BASE_DIR / 'media' ### 四、邮件发送 #### 1. 邮件配置 1. 在配置文件中配置 ``` # 发送邮件相关配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 587 EMAIL_USE_TLS = True EMAIL_HOST_USER = '邮箱号xxx@qq.com' # 邮箱授权码 EMAIL_HOST_PASSWORD = '授权码' DEFAULT_FROM_EMAIL = '别名' ``` 2. 导入发送邮件的包 ``` from django.core.mail import send_mail def send_mail(request): captcha="125485" email="xxx@qq.com" send_mail( subject="验证码", message="您的验证码是"+ "生成的验证码" from_email=None # 会从配置文件中读取 recipient_list=[email] fail_silently=False ) ```