初识django--遇到的问题及解决办法

这篇博客主要记录了作者在学习Django过程中遇到的一些问题,包括web访问的实质理解,rest_framework模板错误,IP地址访问限制, favicon.ico找不到以及在Django中使用Keras模型时遇到的问题。解决方案包括配置rest_framework,允许特定IP访问,添加favicon.ico文件以及解决模型预测错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.web访问的实质

  (1)客户端发送请求到web服务器

  (2)web服务器返回html页面给客户端

    第一次接触web,没基础。创建django项目全靠看教程https://www.cnblogs.com/geekmao/p/7612430.html

2.rest_framework问题

    测试web时,报错:django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html

    解决办法:    

            在配置文件中配置rest_framework库setting文件中的参数INSTALLED_APPS加上rest_framework

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',]

3.IP地址访问问题

    测试的时候是在本地测试,但想通过局域网和其他开发人员共享同一开发站点,就会被拒绝连接请求。

    参考链接:https://www.cnblogs.com/zknublx/p/6184418.html

    解决办法:

        (1)关闭防火墙

        (2)通过指定一个IP地址: 0.0.0.0,告诉服务器去侦听任意的网络接口。(pycharm右上角点击edit configurations配置host)

        (3)在setting配置中加入参数ALLOWED_HOSTS=['192.168.0.148']

4.Not Found:/favicon.ico问题

    默认情况下,浏览器访问一个网站时,同时还会向服务器请求获取网站的图标,即favicon.ico。

    解决办法:

            1.找一个图片格式为ico,命名成favicon.ico,拷贝到django下的\contrib\admin\static\admin\img

                    在命令行输入pip show django,获取django的安装路径

                    

            2.网站www.html-kit.com/favicon/可以在线生成ico文件。

5.keras模型应用在django中出现的问题

    问题背景:

            项目需求是用深度学习训练一个模型,然后做一个web接口,调用web接口时加载模型并实现预测。

    问题:

            加载模型和第一次预测的过程没有问题,但是再次执行到model.predict就会报错         

 

                ValueError: Tensor Tensor(“Placeholder:0”, shape=(3, 3, 1, 32), dtype=float32) is no an element of this graph

    解决办法:

            在web初始化时加载模型,并随便生成一个向量让model执行一次predict函数,之后再使用就不会有问题了

            参考链接:https://zhuanlan.zhihu.com/p/27101000

# 加载模型,django 会在 web 应用初始化时执行这段代码
from keras.models import load_model
import os
import numpy as np

print('load model...')
# import keras
# keras.backend.clear_session()
path = os.path.dirname(os.path.dirname(__file__))
model_path = os.path.join(path,'core','taobaomodel.h5')
model = load_model(model_path)
weights_path = os.path.join(path, 'core','taobaomodel_weights.h5')
model.load_weights(weights_path)
print('load done.')

# load 进来模型紧接着就执行一次 predict 函数
# 玄学:不预测的话,多次预测会报错(来自知乎https://zhuanlan.zhihu.com/p/27101000的解决办法)。
print('test model...')
print(model.predict(np.zeros((1,30,30,1))))
print('test done.')

# 使用模型预测
def captcha_class(x_pre):
    global model
    label = model.predict(x_pre)
    return label

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值