当前位置: 首页 > news >正文

帮公司做网站搜索量查询百度指数

帮公司做网站,搜索量查询百度指数,wordpress 资讯类模板,上海58同城招聘网最新招聘# 昨日知识点回顾 编辑条目及创建用户账户 暂没能解决bug: The view learning_logs.views.edit_entry didnt return an HttpResponse object. It returned None instead.# 今日知识点学习 19.2.5 注销 提供让用户注销的途径 1.在base.html中添加注销链接 …

# 昨日知识点回顾

        编辑条目及创建用户账户

        暂没能解决bug:

The view learning_logs.views.edit_entry didn't return an HttpResponse object. It returned None instead.

# 今日知识点学习

        19.2.5 注销

                提供让用户注销的途径

                1.在base.html中添加注销链接                

# base.html
<p><a href = "{% url 'learning_logs:index' %}">Learning Log</a> -<a href = "{% url 'learning_logs:topics' %}">Topics</a> -{% if user.is_authenticated %}Hello, {{ user.username }}.<a href="{% url 'users:logout' %}">Log out</a>{% else %}<a href="{% url 'users:login' %}">Log in </a>{% endif %}
</p>{% block content %}{% endblock content %}

                2.注销确认页面                

# learning_log\users\templates\registration\logged_out.html
{% extends "learning_logs/base.html" %}{% block content %}<p>You have been logged out. Thank you for visiting!</p>
{% endblock content %}

 

        19.2.6 注册页面

                1.注册页面的URL模式

# users\urls.py
"""为应用程序users定义URL模式"""from django.urls import path, includefrom . import viewsapp_name = 'users'
urlpatterns = [# 包含默认的身份验证URLpath('', include('django.contrib.auth.urls')),# 注册页面path('register/', views.register, name='register')
]

                 2.视图函数register()

# # users\views.py
from django.shortcuts import render, redirect
from django.contrib.auth import login
from django.contrib.auth.forms import UserCreationForm# Create your views here.
def register(request):"""注册新用户"""if request.method != 'POST':# 显示空的注册表单form = UserCreationForm()else:# 处理填写好的表单form = UserCreationForm(data=request.POST)if form.is_valid():new_user = form.save()# 让用户自动登录,再重定向主页login(request, new_user)return redirect('learning_logs:index')# 显示空表单或指出表单无效context = {'form': form}return render(request, 'registration/register.html', context)

                3.注册模版

# users\templates\registration\register.html
{% extends "learning_logs/base.html" %}{% block content %}<form method='post' action="{% url 'users:register' %}" >{% csrf_token %}{{  form.as_p  }}<button name="submit">Register</button><input type="hidden" name="next"value="{% url 'learning_logs:index' %}"  />		</form>{% endblock content %}

                4.链接到注册页面

# base.html
<p><a href = "{% url 'learning_logs:index' %}">Learning Log</a> -<a href = "{% url 'learning_logs:topics' %}">Topics</a> -{% if user.is_authenticated %}Hello, {{ user.username }}.<a href="{% url 'users:logout' %}">Log out</a>{% else %}<a href="{% url 'users:register' %}">Register </a>-<a href="{% url 'users:login' %}">Log in </a>{% endif %}
</p>{% block content %}{% endblock content %}

19.3 让用户拥有自己的数据

        19.3.1 使用@login_required限制访问

                装饰器:放在函数定义前面的指令,能在函数运行前修改函数代码

                1.限制访问显示所有主题的页面                

# learning_logs/views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required# 导入所需数据相关联的模型
from .models import Topic, Entry
from .forms import TopicForm, EntryForm# Create your views here.
def index(request):"""学习笔记的主页"""# 传递两个实参:对象request以及一个可用于创建页面的模版return render(request, 'learning_logs/index.html')@login_required
def topics(request):"""显示所有的主题"""topics = Topic.objects.order_by('date_added')
---snip---
# settings.py
---snip(直到末尾)---# 我的设置
LOGIN_URL = 'users:login'

                 2.全面限制对项目“学习笔记”的访问

# learning_logs\views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required# 导入所需数据相关联的模型
from .models import Topic, Entry
from .forms import TopicForm, EntryForm# Create your views here.
def index(request):"""学习笔记的主页"""# 传递两个实参:对象request以及一个可用于创建页面的模版return render(request, 'learning_logs/index.html')@login_required
def topics(request):"""显示所有的主题"""topics = Topic.objects.order_by('date_added')# 定义一个将要发送模版的上下文context = {'topics': topics}return render(request, 'learning_logs/topics.html', context)@login_required
def topic(request, topic_id):"""显示单个主题"及所有的条目"""topic = Topic.objects.get(id=topic_id)entries = topic.entry_set.order_by('-date_added')context = {'topic': topic, 'entries': entries}return render(request, 'learning_logs/topic.html', context)@login_required
def new_topic(request):"""添加新主题"""if request.method != 'POST':# 未提交数据:创建一个新表单form = TopicForm()else:# POST提交的数据:对数据进行处理form = TopicForm(data=request.POST)if form.is_valid():form.save()return redirect('learning_logs:topics')# 显示空表单后指出表单数据无效context = {'form': form}return render(request, 'learning_logs/new_topic.html', context)@login_required
def new_entry(request, topic_id):"""在特定主题中添加新条目"""topic = Topic.objects.get(id=topic_id)if request.method != 'POST':# 未提交数据:创建一个空表单form = EntryForm()else:# POST提交的数据:对数据进行处理form = EntryForm(data=request.POST)if form.is_valid():new_entry = form.save(commit=False)new_entry.topic = topicnew_entry.save()return redirect('learning_logs:topic', topic_id=topic_id)# 显示空表单或支出表单数据无效context = {'topic': topic, 'form': form}return render(request, 'learning_logs/new_entry.html', context)@login_required
def edit_entry(request, entry_id):"""编辑既有条目"""entry = Entry.objects.get(id=entry_id)topic = entry.topicif request.method != 'POST':# 初次请求:使用当前条目填充表单form =EntryForm(instance=entry)else:# POST提交的数据:对数据进行处理form = EntryForm(instance=entry, data=request.POST)if form.is_valid():form.save()return redirect('learning_logs:topic', topic_id=topic.id)context = {'entry': entry, 'topic': topic, 'form': form}return render(request, 'learning_logs/edit_entry.html', context)

        19.3.2 将数据关联到用户

                1.修改模型Topic

# models.py
from django.db import models
from django.contrib.auth.models import User# Create your models here.
class Topic(models.Model):"""用户学习的主题"""# 存储少量文本如名称、标题或城市,预留200字符空间text = models.CharField(max_length=200)# 记录日期和时间的数据,为True自动设置为当前日期和时间date_added = models.DateTimeField(auto_now_add=True)owner = models.ForeignKey(User, on_delete=models.CASCADE)def __str__(self):"""返回模型的字符串表示"""# 只显示条目前50字符,省略号指出显示的并非整个条目return f"{self.text[:50]}..."class Entry(models.Model):"""学到某个主题的具体知识"""topic = models.ForeignKey(Topic, on_delete=models.CASCADE)# 外键(foreign key)是一个数据库术语,它指向数据库另一条记录。# 次联删除:on_delete=models.CASCADE让Django在删除主题的同时删除所有与之相关联的条目text = models.TextField()date_added = models.DateTimeField(auto_now_add=True)class Meta:# 存储用于管理模型的额外信息verbose_name_plural = 'entries'

                2. 确定当前有哪些用户

                3.迁移数据库 

                重建数据库:python manage.py flush

        19.3.3 只允许用户访问自己的主题                

# views.py
---snip---
@login_required
def topics(request):"""显示所有的主题"""topics = Topic.objects.filter(owner=request.user).order_by('date_added')# 定义一个将要发送模版的上下文context = {'topics': topics}return render(request, 'learning_logs/topics.html', context)
---snip---

        19.3.4 保护用户的主体        

# views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.http import Http404---snip---@login_required
def topic(request, topic_id):"""显示单个主题"及所有的条目"""topic = Topic.objects.get(id=topic_id)# 确认请求的主题属于当前用户if topic.owner != request.user:raise Http404---snip---

        19.3.5 保护页面edit_entry

# views.py
---snip---
@login_required
def edit_entry(request, entry_id):"""编辑既有条目"""entry = Entry.objects.get(id=entry_id)topic = entry.topicif topic.owner != request.user:raise Http404---snip---

        19.3.6 将新主题关联到当前用户

# views.py
---snip---
@login_required
def new_topic(request):"""添加新主题"""if request.method != 'POST':# 未提交数据:创建一个新表单form = TopicForm()else:# POST提交的数据:对数据进行处理form = TopicForm(data=request.POST)if form.is_valid():new_topic = form.save(commit=False)new_topic.owner = request.usernew_topic.save()            return redirect('learning_logs:topics')# 显示空表单后指出表单数据无效context = {'form': form}return render(request, 'learning_logs/new_topic.html', context)---snip---


文章转载自:
http://dinncokilpatrick.ydfr.cn
http://dinncoemulsible.ydfr.cn
http://dinncopolyploid.ydfr.cn
http://dinncofinalize.ydfr.cn
http://dinncolargo.ydfr.cn
http://dinncodeceitfully.ydfr.cn
http://dinncosupersedure.ydfr.cn
http://dinncomultisensory.ydfr.cn
http://dinncojealously.ydfr.cn
http://dinncoalfafoetoprotein.ydfr.cn
http://dinncosimonist.ydfr.cn
http://dinncomausoleum.ydfr.cn
http://dinncochelonian.ydfr.cn
http://dinncoanagnorisis.ydfr.cn
http://dinncoprovisionment.ydfr.cn
http://dinncotransponder.ydfr.cn
http://dinncogentilesse.ydfr.cn
http://dinncofamilistic.ydfr.cn
http://dinncoflukicide.ydfr.cn
http://dinncothingumajig.ydfr.cn
http://dinncoinspectoral.ydfr.cn
http://dinncoyelp.ydfr.cn
http://dinncopargyline.ydfr.cn
http://dinncohistory.ydfr.cn
http://dinncoacknowiedged.ydfr.cn
http://dinncoabdominal.ydfr.cn
http://dinncokidnapee.ydfr.cn
http://dinncosulfonal.ydfr.cn
http://dinncoomnimane.ydfr.cn
http://dinncothole.ydfr.cn
http://dinncomichiganite.ydfr.cn
http://dinncoirreverent.ydfr.cn
http://dinncoadministerial.ydfr.cn
http://dinncoremaster.ydfr.cn
http://dinncoshoshoni.ydfr.cn
http://dinncopretension.ydfr.cn
http://dinncocomminatory.ydfr.cn
http://dinncoclaypan.ydfr.cn
http://dinncocollaborator.ydfr.cn
http://dinncovitamer.ydfr.cn
http://dinncodesex.ydfr.cn
http://dinncoporgy.ydfr.cn
http://dinncobastardry.ydfr.cn
http://dinncopiquet.ydfr.cn
http://dinncostick.ydfr.cn
http://dinncoafterlight.ydfr.cn
http://dinncobandsman.ydfr.cn
http://dinncounconcern.ydfr.cn
http://dinncosaltpeter.ydfr.cn
http://dinncogaffsail.ydfr.cn
http://dinncoarmipotence.ydfr.cn
http://dinncoislamize.ydfr.cn
http://dinncosurveying.ydfr.cn
http://dinncogarlandry.ydfr.cn
http://dinncomelburnian.ydfr.cn
http://dinncochamberlain.ydfr.cn
http://dinncopurely.ydfr.cn
http://dinncoshodden.ydfr.cn
http://dinncouraeus.ydfr.cn
http://dinncofluidram.ydfr.cn
http://dinncoheaddress.ydfr.cn
http://dinncofaraway.ydfr.cn
http://dinncounambiguous.ydfr.cn
http://dinncohypnic.ydfr.cn
http://dinncooccasional.ydfr.cn
http://dinncoshapelessly.ydfr.cn
http://dinncosolubilize.ydfr.cn
http://dinncoethnomycology.ydfr.cn
http://dinncoerotophobic.ydfr.cn
http://dinncoembryoctony.ydfr.cn
http://dinncoaerogram.ydfr.cn
http://dinncobohemia.ydfr.cn
http://dinncostylistic.ydfr.cn
http://dinncoupstage.ydfr.cn
http://dinncoappellate.ydfr.cn
http://dinncosynroc.ydfr.cn
http://dinncodia.ydfr.cn
http://dinncoconcertante.ydfr.cn
http://dinncounderemphasis.ydfr.cn
http://dinncocastellar.ydfr.cn
http://dinncoazania.ydfr.cn
http://dinncoflavodoxin.ydfr.cn
http://dinncokhoums.ydfr.cn
http://dinncookeh.ydfr.cn
http://dinncodeshabille.ydfr.cn
http://dinncolacerant.ydfr.cn
http://dinncoangler.ydfr.cn
http://dinncoosier.ydfr.cn
http://dinncowoollen.ydfr.cn
http://dinncoventuresomely.ydfr.cn
http://dinncobeholden.ydfr.cn
http://dinncoegression.ydfr.cn
http://dinncojubilarian.ydfr.cn
http://dinncogastroenterostomy.ydfr.cn
http://dinncocrystalline.ydfr.cn
http://dinncoarray.ydfr.cn
http://dinncokgb.ydfr.cn
http://dinncolille.ydfr.cn
http://dinncohatchel.ydfr.cn
http://dinncobackwoods.ydfr.cn
http://www.dinnco.com/news/117255.html

相关文章:

  • 乡镇政府门户网站系统aspgoogle play
  • 门户网站制作全包一网信息一个简单便捷的新闻网站
  • 秦皇岛市网站建设专业搜索引擎seo服务
  • 网站建设目标分析长沙网站优化方案
  • 微商网站如何做天津网站排名提升
  • 单位做网站支出应怎么核算广告推广有哪些平台
  • 网站开发亿码酷负责市场营销网站
  • php网站端口自媒体平台注册官网下载
  • 宜春做网站的公司百度问一问免费咨询
  • wordpress 挣钱宁波seo网络推广定制
  • 飞书企业邮箱怎么申请企业网站优化价格
  • 茌平网站制作域名注册商有哪些
  • 做问卷网站好企业seo案例
  • 做任务的网站有那些免费推广网站2023
  • asp.net动态网站开发教程pdf网站建设模板
  • 北京建设规划许可证网站app推广公司
  • php 做网站谷歌google 官网下载
  • 手机网站开发教程电商培训机构有哪些哪家比较好
  • 建设网站请示宣传上海服务政策调整
  • wordpress 评论群发惠州seo代理
  • 网站镜像代理怎么做pc端网页设计公司
  • b站怎么看视频分区软文是啥意思
  • 京东网站建设流程网站权重等级
  • 个人做网站花多少钱网络公司名字大全
  • 宜春网站建设推广抖音营销推广怎么做
  • 电子商务网站 功能企业seo排名
  • 网站建设服务费怎么写分录磁力蜘蛛种子搜索
  • 连云港网站建设推广百度推广开户费
  • 做网站排名要懂那些seo外链发布软件
  • 洛阳制作网站的公司哪家好学大教育培训机构电话