Django新手项目实例

article/2025/1/9 16:29:50

1. 程序安装

(1)安装Django:

pip3 install django

(2)配置系统环境
成功安装Django后,在python目录script路径可找到django-admin.exe文件,将它加入操作系统环境变量中。这样以后调用会比较方便。
运行

django-admin help

能看到下面的内容表示安装过程OK。
在这里插入图片描述

2. 创建Django项目

新建个文件夹,cmd进入该目录,输入以下代码

django-admin startproject testdj

项目创建完毕,如下图
在这里插入图片描述

3. 创建APP

在项目根目录输入命令

python manage.py startapp login

app创建完毕如下图
在这里插入图片描述

4. 编写路由

路由是浏览器输入url,在Django服务器响应url的转发中心。路由都写在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑也就是视图。简单的urls编写方法如下图:
在这里插入图片描述

5. 编写视图函数

路由转发用户请求到视图函数。视图函数处理用户请求,也就是编写业务处理逻辑,一般都在views.py文件里。我们下面写一个简单的视图函数:

在这里插入图片描述
通过上面两个步骤,我们将index这个url指向了views里的index()视图函数,它接收用户请求,并返回一个“hello world”字符串。

6. 运行web服务

现在我们已经可以将web服务运行起来了。

命令行的方式是:

python manage.py runserver 127.0.0.1:8000

访问端口,修改一下url,添加“/index/”,就一切ok了!
在这里插入图片描述

7. 返回HTML文件

上面我们返回给用户浏览器的是什么?一个字符串!实际上这肯定不行,通常我们都是将HTML文件返回给用户。

下面,我们在templates目录中新建一个index.html文件:
代码如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>test</title>
</head>
<body><h1 style="color: black">Hello World!</h1>
</body>
</html>

在这里插入图片描述
再回到views.py文件,编辑index视图,注释当前的return语句,导入render方法,换上新的return语句:
在这里插入图片描述
为了让django知道我们的HTML文件在哪里,需要修改settings文件的相应内容。但默认情况下,它正好适用,你无需修改。
在这里插入图片描述
接下来,我们可以重新启动web服务。在浏览器刷新一下,你会看到带有样式的“Hello World”。

在这里插入图片描述
注:这里有个小技巧,在多次频繁重启服务时,可能会不能及时释放端口,容易启动不了服务,修改一下端口就OK了。

8. 使用静态文件

我们已经可以将HTML文件返还给用户了,但是这还不够,前端三大块HTML、CSS、JavaScript,还有各种插件,它们齐全才是一个完整的页面。在Django中,一般将这些静态文件放在static目录中。

接下来,在mysite中新建一个static目录。(下面导入的静态文件仅用于流程展示,并不实际使用它做点什么。)
在这里插入图片描述
你的CSS、JS和各种插件都可以放置在这个目录里。比如这里,我们又在static下新建了一个js目录,然后拷贝了一个jquery-3.2.1.min.js进来:
在这里插入图片描述
为了让Django知道这个static目录的存在,并能够找到这个目录,需要对settings.py进行配置:

STATIC_URL = '/static/'
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')
]

现在,我们就可以在index.html中引入js文件了:
在这里插入图片描述
重新启动web服务,刷新浏览器,查看结果。当然,你啥都看不出来,因为仅仅引入了一个jqurey而已

9. 接收用户发送的数据

前面,我们将一个要素齐全的HTML文件返还给了用户浏览器。但这还不够,因为web服务器和用户之间没有动态交互。

下面我们设计一个表单,让用户输入用户名和密码,提交给index这个url,服务器将接收到这些数据。

先修改index.html文件。删除原来的内容,写入下面的内容:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body><h1>用户输入:</h1><form action="/index/" method="post">用户名:<input type="text" name="username" /><br />密码:<input type="password" name="password" /><br /><input type="submit" value="提交" /></form>
</body>
</html>

在这里插入图片描述

这时候我们先不要往输入框内输入信息。我们先修改views.py文件:

from django.shortcuts import render
from django.shortcuts import HttpResponse# Create your views here.def index(request):if request.method == 'POST':username = request.POST.get('username')password = request.POST.get('password')print(username, password)return render(request, 'index.html')

因为django有一个跨站请求保护机制,这需要我们在index.html文件中加入一行{% csrf_token %}。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body><h1>用户输入:</h1><form action="/index/" method="post">#下面这个代码会随机生成一个token{% csrf_token %}   <!--加入这行 --> 用户名:<input type="text" name="username" /><br />密码:<input type="password" name="password" /><br /><input type="submit" value="提交" /></form>
</body>
</html>

再次进入浏览器,刷新index页面,输入点东西,这次就能成功提交了,然后我们可以看到print语句打印出来的相应数据了。

10. 返回动态页面

现在,我们收到了用户的数据,但返回给用户的依然是个静态页面。通常我们会根据用户的数据,进行处理后再返回给用户。

先改造views.py文件:在这里插入图片描述

from django.shortcuts import render
from django.shortcuts import HttpResponse# Create your views here.user_list = []def index(request):if request.method == 'POST':username = request.POST.get('username')password = request.POST.get('password')print(username, password)temp = {'user': username, 'pwd': password}user_list.append(temp)return render(request, 'index.html', {'data': user_list})

再改造index.HTML文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body><h1>用户输入:</h1><form action="/index/" method="post">{% csrf_token %}   <!--加入这行 -->用户名:<input type="text" name="username" /><br />密码:<input type="password" name="password" /><br /><input type="submit" value="提交" /></form><h1>用户展示:</h1><table border="1"><thead><tr>用户名</tr><tr>密码</tr></thead><tbody>{% for item in data %}<tr><td>{{ item.user }}</td><td>{{ item.pwd }}</td></tr>{% endfor %}</tbody></table>
</body>
</html>

说明:Django采用自己的模板语言,类似jinja2,根据提供的数据,替换掉HTML中的相应部分,详细语法入门后再深入学习。
接下来,重启服务,刷新浏览器,多输入几次。

在这里插入图片描述

11. 使用数据库

流程走到这里,django的MTV框架基本已经浮出水面了,只剩下最后的数据库部分了。

上面我们虽然和用户交互得很好,但并没有保存任何数据,页面一旦关闭,或服务器重启,一切都将回到原始状态。

使用数据库的需求是毫无疑问的,Django通过自带的ORM框架操作数据库,并且原生支持轻量级的sqlite3数据库。下面我们来看一看:

使用数据库前,我们需要注册app:

setting.py里修改INSTALLED_APPS,把login注册进去:

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

不注册它,你的数据库就不知道该给哪个app创建表。

然后我们在settings中,配置数据库相关的参数,如果使用sqlite3,则不需要做任何修改。
在这里插入图片描述
再编辑app中的models.py文件

from django.db import models# Create your models here.
class UserInfo(models.Model):user = models.CharField(max_length=32)pwd = models.CharField(max_length=32)

这里我们创建了2个字段,分别保存用户的名字和密码。

接下来要在Pycharm的Teminal中通过命令创建数据库的表了。有2条命令,分别是:

python manage.py makemigrations

这会在login目录中的migrations目录中生成一个0001_initial.py迁移记录文件。

再输入命令:

python manage.py migrate

这样,我们就在数据库中将所有app的数据表都创建好了。我们可以看到项目根目录下出现了一个db.sqlite3文件:在这里插入图片描述
现在,我们来修改views.py中的业务逻辑

from django.shortcuts import render,HttpResponse
from login import models
# Create your views here.
user_list=[]
def index(request):if request.method=='POST':username=request.POST.get('username')password=request.POST.get('password')#数据保存到数据库models.UserInfo.objects.create(user=username,pwd=password)#数据库读取数据user_list=models.UserInfo.objects.all()print(user_list)return render(request,'index.html',{'data':user_list})

重启web服务后,刷新浏览器页面,之后和用户交互的数据都能保存到数据库中。任何时候都可以从数据库中读取数据,展示到页面上,不会因为服务器中途关闭,丢失先前的数据了。

至此,一个要素齐全,主体框架展示清晰的Django项目完成了


http://chatgpt.dhexx.cn/article/tx68s7Wq.shtml

相关文章

微信小程序项目实例——印记

微信小程序项目实例——印记 文章目录 微信小程序项目实例——印记一、项目展示二、日记列表三、日记发布文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 印记是一款简洁便利的日记本&#xff0c;用户可以在其中发布自己的日记本&#xff0c;同时也可以查看…

微信小程序项目实例——备忘录

微信小程序项目实例——备忘录 文章目录 微信小程序项目实例——备忘录一、项目展示二、项目介绍三、核心代码 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 二、项目介绍 项目是一个备忘录&#xff0c;拥有记录文字、计时和提醒的基本功能 项目只有一个页面&…

微信小程序项目实例——幸运大转盘

微信小程序项目实例——幸运大转盘 文章目录 微信小程序项目实例——幸运大转盘一、项目展示二、抽奖页三、领奖页文末&#xff1a;项目代码 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 幸运大转盘是一个简单的抽奖小程序 参与用户点击抽奖便可抽取轮盘的奖品…

微信小程序项目实例——狼人杀

微信小程序项目实例——狼人杀 文章目录 微信小程序项目实例——狼人杀一、项目展示二、首页三、游戏页四、特殊角色文末 项目代码见文字底部&#xff0c;点赞关注有惊喜 一、项目展示 狼人杀是一款多人参与的&#xff0c;通过语言描述推动、较量口才和分析判断能力的策略类桌…

project实操——项目实例

1. 新建项目 2. 设置项目日历 可以设置每周工作几天&#xff0c;每天工作几小时 点击 项目 -> 更改工作时间 在弹出窗口上&#xff0c;选择下方的“”工作周“选项卡&#xff0c;点击右侧的【详细信息】按钮 系统打开的详细信息窗口上&#xff0c; 选中左侧列表中的“周六…

Android Studio同步远程Git代码到本地

前一篇文件说如何将本地代码同步到远程Git服务器&#xff08;将代码同步到远程Git服务器&#xff09;&#xff0c;这篇说说如何在Android Studio中将远程代码同步到本地。 环境说明&#xff1a; 1、本地需要安装有git环境 2、Android Studio 3、存放项目的远程服务器地址&a…

git 同步远程和本地的同名分支

首先正常创建一个本地仓库&#xff0c;添加内容&#xff0c;跟远程关联 git init git add . git commit -m "" git remote add origin 远程仓库地址 如果在本地创建了一个新的分支 git checkout -b branch_one 然后将该分支直接推动到远程进行同步 git push -u …

使用git 实现本地文件和远程代码仓的互相同步

一、关于Git的安装与配置&#xff0c;可以参考这两篇文章 Git 详细安装教程&#xff08;详解 Git 安装过程的每一个步骤&#xff09; GitHub的安装与配置 二、同步本地文件与代码仓常规流程 1、在github上创建项目2、使用git clone https://github.com/xxxxxxx/xxxxx.git 克…

git(实现代码存档和同步)

远程仓库就是github&#xff0c;码云这些之类的&#xff0c;所有人都以远程仓库的文件作为最新版本 每个人都有自己的工作区&#xff08;本地电脑里面的一个文件夹&#xff09;&#xff0c;每个人都可以用clone把最新版本的文件复制到本地 比如我现在有四个文件&#xff0c;但…

[Git] 本地代码库和远程同步

一 前言 这本来不是一个很严重的问题, 有很多办法可以处理, 但是对于Git新手来说, 会觉得非常可怕, 因为不知道怎么恢复之前的状态, 不知道当前状态上传上去会造成什么影响, 最怕的是影响到master之类的主分支, 然后把别人的工作搞丢, 那就完蛋了. 我刚开始接触Git的时候, 上…

git操作之同步代码到仓库

1、先创建一个仓库&#xff0c;然后把创建的空仓库克隆到本地&#xff1b;2、把程序拷贝到本地的仓库中&#xff0c;然后再进行下列操作&#xff1b;&#xff08;1&#xff09;git add . 保存全部内容&#xff08;2&#xff09;git commit -m "项目描述"(3) git pu…

如何将git服务器同步到本地文件夹,使用git在服务器上部署git仓库并实现提交代码时同步代码到生产环境...

最近由于需要对正在运行的系统进行新功能添加&#xff0c;本来是可以通过github进行代码维护&#xff0c;但是由于这个项目涉及一些问题&#xff0c;目前还不能开源&#xff0c;所以只能是手动覆盖bug文件&#xff0c;生产环境上的代码反而是最新的了。 之前有个思路&#xff0…

git 项目代码上传到服务器上,git 上传代码到服务器

一、建立本地git仓库 1、cd到你项目根目录下 git init 二、将本地所有文件添加到暂存区 git add . . 表示所有文件 如果想添加项目中的指定文件,那就把.改为指定文件名或者目录即可,多个目录用空格隔开 三、将暂存区的文件提交到本地仓库 git commit -m 注释 四、在码云上创建…

git如何拉去开发的 最新代码_git拉取代码到本地

git拉取代码到本地的方法是:首先打开git命令窗口,输入命令【git clone github仓库地址】;然后回车即可拉取代码到本地仓库。 第一步:拉取远程代码git clone https://github.com/…/PrettyGirls.git 第二步:查看本地分支和远程分支1、cd PrettyGirls 到工程目录下; 2、git…

git配置及同步项目代码到本地

长久不用git发现自己都忘记了。。。在此记录下git配置&#xff0c;以便日后查看。 git配置 配置本地仓库账号和邮箱 git config --global user.name "YourName" git config --global user.email "your-emailexample.com"生成ssh密钥 ssh-keygen -t rsa -…

Git克隆仓库代码至本地

目录 1、本地新建文件夹&#xff1a; 2、文件夹右击&#xff0c;点击&#xff1a;Git Bash Here 3、本地仓库初始化&#xff0c;输入&#xff1a;git init 4、复制仓库代码地址 5、代码克隆&#xff0c;输入&#xff1a;git clone 复制的地址 6、打开文件夹&#xff0c;…

Git代码拉取与同步

1、git clone [email protected]:xxx/xxx.git 2、git checkout -b dev origin/dev 创建本地dev分支 并与远程dev分支关联 3、git remote add upstream 远程公库地址 关联到远程的公库 4、git pull upstream dev 从远程公库拉取dev分支代码 远程公库新建了bug分支&#xff…

在WebStorm里面搜索文件中出现的中文字符

ctrfF或者ctflshiftF 搜索[\u0100-\uffff]

处理webStorm中文字体样式大小不一,难看的问题

修改前样式&#xff1a; 修改后样式&#xff1a; 具体操作设置如下: File→Settings→Appearance & Behavior→Appearance&#xff0c;Theme 选择Darcula&#xff08;主题可自行选择&#xff09; File→Settings→Editor→Font&#xff0c; Font 选择Consolas&#xff…

WebStorm安装教程【2022年新版图解】

对于入门JavaScript 开发的者&#xff0c;最重要的就是安装WebStorm软件&#xff0c;一款非常优秀的JavaScript工具&#xff0c;在互联网上查询目前还没有一篇写得比较详细的WebStorm教程。今天我将使用WebStorm最新2022年版本&#xff0c;从下载到安装以及创建项目带大家完整的…