我正在使用 React Navigation 6 设置 URI 方案深度链接,以下是我的配置方式:
const linking = {
prefixes: ["wagal://"],
config: {
ResetPassword: {
path: "reset/password/:token",
params: {
token: null,
},
},
},
};
function homeStack() {
return (
<NavigationContainer linking={linking} fallback={<Text>Loading...</Text>}>
<Stack.Navigator>
<Stack.Screen component={ResetPassword} name="ResetPassword" />
//...
</Stack.Navigator>
</NavigationContainer>
);
}
Run Code Online (Sandbox Code Playgroud)
如果我去wagal://reset/password?token=123456789它会将我重定向到重置密码屏幕中的应用程序,但我无法从中获取令牌参数ResetPassword:
function ResetPassword({ route }) {
const {token} = route.params;
// ...
}
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误:
undefined is not an object (evaluating route.params.token)
但是如果我尝试使用下面的代码在PasswordReset屏幕中获取整个URL,它会显示带有令牌的整个URI:
useEffect(() => {
Linking.getInitialURL().then((url) => {
console.log(`url`, url);
}); …Run Code Online (Sandbox Code Playgroud) url-scheme deep-linking reactjs react-native react-navigation
我学习了一些Django的测试代码,我觉得assertIn和assertContains很相似,我读的文档,其中他们没有说任何事情assertIn或者我找不到它。
下面的这个例子检查 'john' 是否出现在 self.email.body
self.assertIn('john', self.email.body)
Run Code Online (Sandbox Code Playgroud)
类似地,此示例检查是否csrfmiddlewaretoken出现在self.response
self.assertContains(self.response, 'csrfmiddlewaretoken')
Run Code Online (Sandbox Code Playgroud)
看起来语法不同,但功能相同。因此,有什么区别?
如果您能通过一些基本示例帮助我理解这一点,我将不胜感激。
非常感谢
如何计算网站上的访问者数量,以便每次用户访问网站时访问者数量都会增加。我可以使用以下代码计算访问者的浏览次数:
def blog_detail(request, blog_slug):
blog = get_object_or_404(Blog, slug=blog_slug)
session_key = 'blog_views_{}'.format(blog.slug)
if not request.session.get(session_key):
blog.blog_views += 1 # here
blog.save()
request.session[session_key] = True
context = {
'blog': blog,
'categories': get_category_count()
}
return render(request, 'blogs/blog-detail.html', context)
Run Code Online (Sandbox Code Playgroud)
blog_views当我的模型中有字段时。我不知道是否有类似的方法来计算我的网站被访问的次数。
有些人建议使用hitcount,但除了通用视图之外我无法在任何地方使用它。如果您也建议,请用一些代码进一步详细说明,谢谢。太感谢了。
我有以下搜索查询views.py:
class SearchView(View):
def get(self, request, *args, **kwargs):
queryset = BlogPost.objects.all()
query = request.GET.get('q')
if query:
queryset = queryset.filter(
Q(title__icontains=query) |
Q(content__icontains=query)
).distinct()
context = {
'queryset': queryset,
'query': query,
}
return render(request, 'blogs/search_result.html', context)
Run Code Online (Sandbox Code Playgroud)
如果我搜索Tesla结果模板中显示的结果如下所示的单词:
请帮助我,如何在 Django 模板中以黄色突出显示搜索到的查询?谢谢你的帮助!
编辑:这是带有搜索框的模板代码
<div class="card my-4">
<div class="card-body">
<div class="card-title">Search blog</div>
<form action="{% url 'blog:search_blog' %}">
{% csrf_token %}
<input type="text" class="form-control" name="q" placeholder="What are you looking for?">
<input type="submit" value="Search" class="btn btn-success btn-sm mt-3">
</form>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是 …
这是我使用的简单下拉组件。
<script>
let show = false;
</script>
<div>
<button on:click={() => show = !show }>Show Dropdown</button>
{#if show}
<div>
<a href="/">Option 1</a>
<a href="/">Option 2</a>
<a href="/">Option 3</a>
<a href="/">Option 4</a>
</div>
{/if}
</div>
<style>
a { display: block; }
</style>
Run Code Online (Sandbox Code Playgroud)
我在父级中使用此组件三次,如下所示:
<script>
import Dropdown from './dropdown.svelte';
</script>
<div>
<Dropdown />
<Dropdown />
<Dropdown />
</div>
Run Code Online (Sandbox Code Playgroud)
单击第一个下拉列表后,其相应的下拉列表内容将打开,但是单击下一个下拉列表后,如何关闭以前的下拉列表并仅打开单击的下拉列表?
谢谢
我有一个模型:
def author_document_path(instance, filename):
return f"documents/{ instance.author.username }/%y/%m/%d/{filename}"
def author_blog_images(instance, filename):
return f"blog-images/{instance.author.username}/%y/%m/%d/{filename}"
class Blog(models.Model):
title = models.CharField(max_length=255)
# other fields
thumbnail = models.ImageField(upload_to=author_blog_images)
documents = models.FileField(upload_to=author_document_path)
Run Code Online (Sandbox Code Playgroud)
传递f"blog-images/{instance.author.username}/%y/%m/%d/{filename}"上述两个函数的正确方法是什么,因为这些函数不会将Year文件夹创建为2019,month文件夹创建为5,day文件夹创建为30。在上载受尊重的文件和图像之后,目录如下所示:
这不是我想要的,我希望它看起来像:
你能帮我吗 非常感谢。
我写了一个如下的测试代码,其中有一些错误,我无法检测到,但是老师说你错过self了代码中的某个地方。那就像是我找不到那个提示。这是我的代码:
def HomeTests(TestCase):
def setUp(self):
board = Board.objects.create(
title='Django', description='Django Desc')
url = reverse('home')
response = self.client.get(url)
def home_test_view_status_code(self):
self.assertEqual(response.status_code, 200)
def home_test_func(self):
view = resolve('/')
self.assertEqual(view.func, home)
def test_home_contains_link_to_topics_page(self):
board_topics_url = reverse(
'board_topics', kwargs={'id': board.pk})
self.assertContains(response, 'href={0}'.format(board_topics_url))
Run Code Online (Sandbox Code Playgroud)
即使我运行python manage.py test此代码也不会引发任何错误:
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
Run Code Online (Sandbox Code Playgroud)
请帮助我,我在这里做错了。self关键字应该在哪里?为什么?
然后,我去图书馆检查并发现了错误,然后错误地在其中添加了“ p” view = resolvep('/'),却不知道自己在运行python manage.py test它,结果如下:
C:\Users\Administrator\Desktop\Practice\board\src>python manage.py test
Creating test database for alias 'default'... …Run Code Online (Sandbox Code Playgroud) 我有ProductList组件
import Title from "./Title";
class ProductList extends Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return <Title name="Our" title="Products" />;
}
}
Run Code Online (Sandbox Code Playgroud)
以及Title导出并在ProductList组件内部使用的组件。
class Title extends Component {
constructor(title, name) {
super();
this.title = title;
this.name = name;
}
render() {
return (
<div className="product-title">
{this.name} <strong>{this.title}</strong>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不能渲染title和name。
此外,一个额外的问题,如果我写的是基于类的组件功能基于组件我们需要做的是这样function Title({ name, title }),为什么我们需要括号{}来包装name,并title在那里?
如何在 React Navigation 的嵌套导航器中实现深度链接。这里我有一个嵌套的堆栈导航器:
function AuthStack() {
return (
<Stack.Navigator>
<Stack.Screen component={Login} name="Login" /> // deep link this screen
<Stack.Screen component={ResetPassword} name="ResetPassword" />
</Stack.Navigator>
);
}
Run Code Online (Sandbox Code Playgroud)
它嵌套在另一个主堆栈导航器中:
const linking = {
prefixes: ["wagal://"],
config: {
screens: {
AuthStack: "login", // this doesn't reference `Login` screen on deep linking
},
},
};
function homeStack() {
return (
<NavigationContainer linking={linking}>
<Stack.Navigator>
<Stack.Screen component={AuthStack} name="AuthStack" /> // here
// ...
</Stack.Navigator>
</NavigationContainer>
);
}
Run Code Online (Sandbox Code Playgroud)
我尝试深层链接“wagal://login/”来进行Login筛选:
screens: {
AuthStack: "login",
},
Run Code Online (Sandbox Code Playgroud)
但没有成功,我也尝试过: …
deep-linking react-native react-navigation-v5 react-navigation-v6
我正在学习 Django 教程,但在理解下面的代码时遇到一些问题:
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
# why do we need to save instance? 'Profile.objects.create' already created and save that for us
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
Run Code Online (Sandbox Code Playgroud)
这意味着,如果用户创建帐户或注册网站,则会使用信号自动创建与该用户关联的个人资料。
问题是,为什么我们需要保存配置文件的实例,因为Profile.objects.create(user=instance)已经同时创建并保存了该实例。
即使我省略上面代码的第二块,它仍然可以正常工作:
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么,或者我不明白,或者我们不需要第二个块?请帮助我理解这一点并预先感谢您。
我是 Django 的新手,刚做了一个简单的博客网站,现在我想进入更复杂的项目。我最近发现Django 1.11 电子商务网站教程,它看起来很不错,但我担心它的版本。我需要你的建议,我应该在这里使用 Django 1.1 吗?这两个版本有何不同,在遵循这些教程时需要注意哪些主要变化?感谢您的帮助!
我在Python中有以下代码:
txt = 'Ted\'s date of birth is 5-6-2005 and he started college at 08-5-2019'
year = re.compile(r'[1900-2023]+')
res = year.findall(txt)
for i in res:
print(i)
Run Code Online (Sandbox Code Playgroud)
上面的代码返回:
200
0
2019
Run Code Online (Sandbox Code Playgroud)
由于[1900-2023]返回的是1900to 范围之间的任何匹配项2023,为什么在这里它返回200和0(超出此范围)?而且,它甚至没有返回处于此范围内的2005。
python ×8
django ×7
deep-linking ×2
javascript ×2
react-native ×2
reactjs ×2
testing ×2
css ×1
regex ×1
svelte ×1
sveltekit ×1
url-scheme ×1
user-profile ×1