django 哪些事

 

主要分类

1-关于用户登陆返回原访问登陆页面

2-settings- 配置~~~

3-关于数据库的便捷用法__双下划线的魔法法应用

1,——————————————————关于用户登陆返回原访问登陆页面

一句话概括:在GET请求的时候获取一个原网页的链接, 之后再POST表单提交过之后,把这个原网页链接,拿过来使用

 1 def register(request):
 2     if request.method == 'GET':
 3         ret = render(request, 'register.html')
 4         ret.set_cookie('register_form', request.META.get('HTTP_REFERER', '/'))
 5         return ret
 6     else:
 7         name = request.POST.get('name', '')
 8         password = request.POST.get('password', '')
 9         register_form = request.COOKIES.get('register_form', '')
10         if register_form:
11             ret = HttpResponse(f"""
12                 返回原网页
13                 <a href='{register_form}'>点击返回原网页</a>
14             """)
15             ret.set_cookie('name', name)
16             print(register_form, '<<<<<<<<<<<<<register, 1')
17             return ret
18         else:
19             print(register_form, '<<<<<<<<<<<<<register, 0')
20             return redirect(reverse('index'))
用户登陆返回原网页

 2,——————————————————settings- 配置~~~打印sql语句

一句话概括:在settings中配置需要用到的地址,变量,中间件,数据库。。。。。。。。。。。。。

 1 # 打印mysql语句
 2 LOGGING = {
 3     'version': 1,
 4     'disable_existing_loggers': False,
 5     'handlers': {
 6         'console':{
 7             'level':'DEBUG',
 8             'class':'logging.StreamHandler',
 9         },
10     },
11     'loggers': {
12         'django.db.backends': {
13             'handlers': ['console'],
14             'propagate': True,
15             'level':'DEBUG',
16         },
17     }
18 }
打印mysql语句

 

  ——————————————————settings- 配置~~~配置邮箱

 1 # 关于邮箱发送激活的一些数据
 2 # 邮箱的服务器地址
 3 EMAIL_HOST = 'smtp.163.com'
 4 # 端口
 5 EMAIL_PORT = 25
 6 # 用户名
 7 EMAIL_HOST_USER = '################'
 8 # 密码
 9 EMAIL_HOST_PASSWORD = '************'
10 # 从哪个邮箱发
11 EMAIL_FROM = '##################'
配置邮箱
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

msg = MIMEText('老大,我今天需要请假。', 'plain', 'utf-8')  # 发送内容
msg['From'] = formataddr(["frank", '*********@163.com'])  # 发件人
msg['To'] = formataddr(["jack", '********@qq.com'])  # 收件人
msg['Subject'] = "【请回复】"  # 主题

server = smtplib.SMTP("smtp.163.com", 25) # SMTP服务
server.login("*********@163.com", "授权码或密码") # 邮箱用户名和密码  把密码改成授权码就行了
server.sendmail('********@163.com', ['********@qq.com', ], msg.as_string()) # 发送者和接收者
server.quit()
验证邮箱是否配置正确

 

  ——————————————————settings- 配置~~~媒体文件和css,js

1 # css,js。。。的存储位置
2 STATIC_URL = '/static/'
3 STATICFILES_DIRS = [
4     os.path.join(BASE_DIR, 'static'),
5 ]
6 
7 # 媒体文件的存储位置
8 MEDIA_URL = '/static/media/'
9 MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media')
媒体文件和css,js  
 1 TEMPLATES = [
 2     {
 3         'BACKEND': 'django.template.backends.django.DjangoTemplates',
 4         'DIRS': [os.path.join(BASE_DIR, 'templates')]
 5         ,
 6         'APP_DIRS': True,
 7         'OPTIONS': {
 8             'context_processors': [
 9                 'django.template.context_processors.debug',
10                 'django.template.context_processors.request',
11                 'django.contrib.auth.context_processors.auth',
12                 'django.contrib.messages.context_processors.messages',
13                 # 媒体数据的加载, 图片, 视频。。。
14                 'django.template.context_processors.media',
15             ],
16         },
17     },
18 ]
TEMPLATES

 3,—————————————————关于数据库的便捷用法__双下划线的魔法法应用

class StudentInfo(models.Model):
    name = models.CharField(max_length=20)
    school = models.ForeignKey('SchoolInfo', related_name='student')
    teacher = models.ManyToManyField('TeacherInfo', related_name='student')


class SchoolInfo(models.Model):
    name = models.CharField(max_length=20)


class TeacherInfo(models.Model):
    name = models.CharField(max_length=20)
    school = models.ForeignKey('SchoolInfo', related_name='teacher')
数据库的创建
a = ['尚硅谷学校的老师:', models.TeacherInfo.objects.filter(school__name='尚硅谷').values_list('name')]
    b = ['尚硅谷学校的学生:', models.StudentInfo.objects.filter(school__name='尚硅谷').values_list('name')]
    d = ['谢天老师的学生:', models.StudentInfo.objects.filter(teacher__name='谢天').values_list('name')]
    c = ['刘渊老师的学生:', models.StudentInfo.objects.filter(teacher__name='刘渊').values_list('name')]
    e = ['刘渊老师的学校:', models.SchoolInfo.objects.filter(teacher__name='刘渊').values_list('name')]
    f = ['小明1学生的老师:', models.TeacherInfo.objects.filter(student__name='小明1').values_list('name')]
    g = ['小明1学生的学校:', models.SchoolInfo.objects.filter(student__name='小明1').values_list('name')]
便捷用法

 

posted on 2018-07-23 18:50  听雨-  阅读(109)  评论(0)    收藏  举报

导航