<!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>
</body>
</html>

再次进入浏览器,刷新索引页面,输入内容,这次您可以成功提交,然后我们可以在Pycharm中看到print语句打印的相应数据.

现在我们已经收到了用户的数据,静态页面仍然返回给用户. 通常,在返回给用户之前,我们会根据用户的数据对其进行处理.
首先转换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的相应部分python django教程,开始学习后的详细语法.
下一步,重新启动服务,刷新浏览器,然后再输入几次.

可以看出,我们已经获得了用户实时输入的数据,并实时显示在用户页面上,这是一个很好的交互过程. 在Pycharm中,我们还可以看到每次输入的数据.
这一过程已经结束,Django的MTV框架已经基本浮出水面,只剩下最后一个部分.
尽管我们与上述用户进行了很好的互动,但是我们没有保存任何数据. 关闭页面或重新启动服务器后,一切将恢复为原始状态.
毫无疑问,需要使用. Django通过内置的ORM框架来操作,并且本地支持轻量级sqlite3. 让我们看一下:
在使用之前,我们需要注册该应用程序:

如果不注册它,您的将不知道要为其创建表的应用程序.
然后,我们在设置中配置与相关的参数. 如果使用sqlite3,则无需进行任何更改.

编辑models.py文件,该文件在MTV中为M.

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

这将在登录目录的migrations目录中生成0001_initial.py迁移日志文件.

再次输入命令:
python manage.py migrate
结果如下:
D:\work\for_test\mysite>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, login, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying login.0001_initial... OK
Applying sessions.0001_initial... OK
通过这种方式,我们在中创建了所有应用程序数据表. 我们可以在项目根目录中看到一个db.sqlite3文件:

现在让我们在views.py中修改业务逻辑

from django.shortcuts import render
from login import models # 导入models文件
# Create your views here.
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()
return render(request, 'index.html', {'data': user_list})
重新启动Web服务后,刷新浏览器页面,然后可以将与用户交互的数据保存到中. 您可以随时从中读取数据并将其显示在页面上,而不会丢失先前的数据,因为服务器已中途关闭.
至此,一个完整的Django项目(具有完整的元素并清晰显示主框架)已完成. 真的很简单吗?
Django是Python的必须学习的Web框架. 它功能强大且全面,但也意味着它有很多限制,灵活性低和可修改性差. 这是一条鱼和熊掌. 当我们学习Django时,实际上是在学习软件. 首先,我们必须了解其基本原理,掌握其总体框架,并牢记一些基本规则. 其余的将继续深入研究细节. 深度和难以管理的技术.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-145070-2.html
很喜欢舒淇
亲
一剑之仇终将报