前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Django中使用Gradio,为后面的开发做好准备

在Django中使用Gradio,为后面的开发做好准备

原创
作者头像
IT蜗壳-Tango
修改2024-07-07 18:59:09
4633
修改2024-07-07 18:59:09
举报
文章被收录于专栏:Django从入门到实践

简介

在前面的文章中,我们已经学习了一些基础知识。现在,我们将正式开始项目的搭建。本项目的组成包括以下两个主要部分:

提示词以及各种API均配置在Django中。

用户交互则使用最近非常流行的Gradio框架。

在本地开发时,我们将暂时手动启动Gradio项目。后期准备上线时,将各个服务放到Docker中,让它们各自自动启动。

创建Gitee的项目仓库

为了项目的版本管理以及后期推送到服务器,我建议大家把代码都上传到Gitee上,之所以没有使用GitHub是因为它的访问不是很稳定。

项目名称大家自己根据喜好来填写,但是最好要有意义。

进入到我的工作区clone一下项目

代码语言:bash
复制
cd workspace
cd tango-ai

创建虚拟环境

运行以下命令创建虚拟环境,并安激活虚拟环境

代码语言:bash
复制
conda create -n ai_web -y
conda activate ai_web

安装必要的基础库,后续还会安装其他的库

代码语言:bash
复制
pip install django gradio -i https://pypi.tuna.tsinghua.edu.cn/simple

创建项目

进入到我们的工作目录下(你任意保存代码的位置,但最好不要用中文或者特殊字符),运行以下命令创建项目

代码语言:bash
复制
django-admin startproject config
mv config/ AI_Web/
python manage.py startapp AI

这里我们先创建一个叫config的项目(这个是我的个人习惯,方便后面的项目管理),django会自动创建一个config的项目目录,我们再将它修改为一个其他更符合我们项目的名字,例如我这里改成了AI_Web。 进入到项目里面我们再创建一个名为AI的APP。

为了后续编码方便,我们后续的操作将会在IDE中进行,这里我使用的PyCharm你可以根据自己的喜好选择其他的编辑,如果你是第一次接触Django,我建议你和我使用同样的IDE,这样更不容易出错。

将我们创建好的AIAPP添加到config文件夹中的settings.py中。

代码语言:python
代码运行次数:0
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'AI'
]

将Gradio集成到Django中

我们在APP目录下创建一个gradio_interface.py文件,内容如下:

代码语言:python
代码运行次数:0
复制
import gradio as gr

def greet(name):
    return f"Hello {name}!"

iface = gr.Interface(fn=greet, inputs="text", outputs="text")
iface.launch(server_name="0.0.0.0", server_port=7860)

在 Django 视图中嵌入 Gradio 接口,修改views.py文件

代码语言:python
代码运行次数:0
复制
from django.shortcuts import render


def gradio_view(request):
    gradio_url = "http://localhost:7860/"  # 使用Gradio生成的共享链接
    return render(request, 'gradio.html', {'gradio_url': gradio_url})

并在APP的目录下创建一个templates文件夹,然后创建一个gradio.htmlHTML文件,并在其中包含一个用于显示 Gradio 接口的占位符:

代码语言:html
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Gradio Interface</title>
</head>
<body>
    <iframe src="{{ gradio_url }}" width="100%" height="100%" frameborder="0"></iframe>
</body>
</html>

在APP的目录下创建一个urls.py文件,并修改内容如下:

代码语言:python
代码运行次数:0
复制
from django.urls import path
from .views import gradio_view

urlpatterns = [
    path('gradio/', gradio_view, name='gradio_view'),
]

将建APP的urls.py添加到项目的urls.py文件中

代码语言:python
代码运行次数:0
复制
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('AI.urls')),
]

我们先启动一下Gradio服务器看看效果如何

代码语言:bash
复制
python gradio_interface.py

在APP的目录下即在gradio_interface.py同级目录下运行此命令,或者使用绝对路径也可以。

我们访问一下这个地址,试试是否正常。

可以看到是正常工作的,我们在新开一个命令行窗口,在项目的根目录下运行以下命令

代码语言:bash
复制
python manage.py runserver

启动好之后,我们再访问一下这个地址看看效果

可以看到也是可以正常显示的。

总结

我们这篇内容只是简单的把最基础的环境创建一下,为后面的开发做好准备,希望你能和我一起把环境搭建好。


我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 创建Gitee的项目仓库
  • 创建虚拟环境
  • 创建项目
  • 将Gradio集成到Django中
  • 总结
相关产品与服务
TAPD 敏捷项目管理
TAPD(Tencent Agile Product Development)是源自于腾讯的敏捷研发协作平台,提供贯穿敏捷研发生命周期的一站式服务。覆盖从产品概念形成、产品规划、需求分析、项目规划和跟踪、质量测试到构建发布、用户反馈跟踪的产品研发全生命周期,提供了灵活的可定制化应用和强大的集成能力,帮助研发团队有效地管理需求、资源、进度和质量,规范和改进产品研发过程,提高研发效率和产品质量。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档