我正在尝试仅使用内置的Laravel功能实现基本身份验证系统.系统可以正常工作,但前提是我为/ admin/login路由指定名称[即...-> name('admin.login)].如果我把它拿出来,我得到的例外情况如下.
ErrorException(E_ERROR)Route [login.admin]未定义.(查看:/var/www/html/shop/resources/views/auth/login.blade.php)
在过去,我能够访问未命名的路线,我可以访问其他未命名的路线/login/admin.我希望有人能告诉我为什么我会收到错误.
路线
Auth::routes();
Route::get('/login/admin', 'Auth\LoginController@showAdminLoginForm')->name('login.admin');
Route::get('/login/staff', 'Auth\LoginController@showStaffLoginForm');
Route::get('/register/admin', 'Auth\RegisterController@showAdminRegisterForm');
Route::get('/register/staff', 'Auth\RegisterController@showStaffRegisterForm');
Run Code Online (Sandbox Code Playgroud)
$ url可以有2个值admin或staff.
登录刀片页面
@isset($url)
<form method="POST" action="{{ route('login.'.$url) }}">
@else
<form method="POST" action="{{ route('login') }}">
@endisset
Run Code Online (Sandbox Code Playgroud)
该命令routes:list还显示路由存在,只是未命名.
| | GET|HEAD | login/admin | | App\Http\Controllers\Auth\LoginController@showAdminLoginForm | web,guest,guest:admin,guest:staff |
| | POST | login/admin | | App\Http\Controllers\Auth\LoginController@adminLogin | web,guest,guest:admin,guest:staff |
| | GET|HEAD | login/writer | | App\Http\Controllers\Auth\LoginController@showWriterLoginForm | web,guest,guest:admin,guest:staff |
| | POST | login/writer | | App\Http\Controllers\Auth\LoginController@writerLogin | web,guest,guest:admin,guest:staff …Run Code Online (Sandbox Code Playgroud) 如何设置字符串格式,以便我可以使用变量来确保长度可以根据需要更改?例如,假设最初长度为 10,然后输入更改,然后长度变为 15。我将如何更新格式字符串?
length = 0
for i in self.rows:
for j in i:
if len(j) > length:
length = len(j)
print('% length s')
Run Code Online (Sandbox Code Playgroud)
显然上面的语法是错误的,但我不知道如何让它工作。
我试图只获取属于特定用户的课程,下面我有模型、序列化器和视图,我正在使用它来尝试实现这一目标。如果我从视图中删除整个 get_queryset 函数,API 将返回相应的用户以及每个用户创建的每个课程。如果 get_queryset 保留,则 api 始终返回未找到的用户,并且仍然提供所有存在的课程。谁能指出我如何才能达到我想要的结果。
看法:
class UserDetail(generics.RetrieveUpdateDestroyAPIView):
permission_classes = [IsProfileOwnerOrReadOnly]
# queryset = User.objects.all()
serializer_class = UserSerializer
def get_queryset(self):
user = self.request.user
queryset = User.objects.all()
if user is not None:
queryset = queryset.filter(courses__owner_id=user.id)
return queryset
Run Code Online (Sandbox Code Playgroud)
串行器
class UserSerializer(serializers.ModelSerializer):
courses = serializers.PrimaryKeyRelatedField(
many=True, queryset=Course.objects.all())
class Meta:
model = User
fields = ['id', 'username', 'courses']
Run Code Online (Sandbox Code Playgroud)
模型
class Course (models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
pub_date = models.DateField(default=date.today)
owner = models.ForeignKey('auth.User', related_name='courses', on_delete=models.CASCADE)
def __str__(self):
return self.title
Run Code Online (Sandbox Code Playgroud) 让我们说我有这个功能:
def function(a)
c = a+b
print(c)
Run Code Online (Sandbox Code Playgroud)
是否建议在函数中使用print语句来显示输出,而不是在结尾处放置一个return语句并使用print(function(a))?
如果我在函数中同时使用print语句和return语句来显示相同的输出,那会有什么影响呢?让我们想象一下,我需要显示答案c,然后使用c其他地方的值.这会破坏任何编码约定吗?
所以问题的重点不在于print和之间的区别return,而是在同一个函数中使用它们以及它是否对程序产生可能的影响时,它被认为是一种好的风格.例如:
def function(a)
c = a+b
print(c)
return c
value = function
print(value)
Run Code Online (Sandbox Code Playgroud)
结果会是两个c人吗?假设c = 5; 因此,输出是否为(?):
5
5
Run Code Online (Sandbox Code Playgroud) python ×2
django ×1
function ×1
laravel ×1
laravel-5.7 ×1
php ×1
printing ×1
python-3.5 ×1
python-3.x ×1
return ×1
routes ×1
variables ×1