参考

1.环境搭建

虚拟环境

python3.8+Django3.1.1 【安装教程】

IDE

Pycharm收费版2020.1.1【请支持正版】

平台

win10

(1)安装Django时需要将其加入到环境变量
(2)虚拟环境需要激活才能使用【active.bat】

2.入门1

(1)创建Django项目

打开Pycharm,选择Django,虚拟环境和工程项目路径

(2)项目初始化文件概览

__init__.py:空文件
setttings.py:空配置文件
urls.py:路由文件
wsgi.py:网关文件
templates:HTML文件安置目录
manage.py:项目管理脚本

(3)创建APP

terminal终端

python manage.py startapp login

工程目录下生成一个文件夹login

(4)编写路由【urls.py】

#1.导入文件
from login import views
#2.在列表中添加路由
urlpatterns = [
path('admin/',admin.site.urls),
path('index/',views.index)
]

(5)编写视图文件【views.py】

#1.导入模块
from django.shortcuts import HttpResponse
#2.编写index函数
def index(request):
return HttpResponse('Hello World!') #被此类封装后返回才能被HTTP协议识别,不能直接返回字符串

(6)运行项目

python manage.py runserver 127.0.0.1:8000

pycharm中点击Edit Configurations 在host中填入127.0.0.1,port中填入8000,name随意。

注:在运行前要先将虚拟环境激活

cd F:\learn\2020\down\7月-8月\python\Project\DjangoVenv3.8\Project1\Scripts
activate.bat
cd cd F:\learn\2020\down\7月-8月\python\Project\untitled

(7)查看结果

127.0.0.1:8000
127.0.0.1:8000/index

(8)优化1 将HTML文件返回给用户

在templats中新建index.html

index.html

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

view.py

from django.shortcuts import render
def index(request):
return render(request,'index.html');

settings.py

TEMPLATES = [
{
...
'DIRS':[os.path.join(BASE_DIR,'templates')],
...
}
]

(9)优化2 使用静态文件

1.新建static.js包

2.在js中拷贝jquery-3.2.1.min.js

3.配置settings

#3.1 帮助信息
# Statics files(CSS,JavaScrpt,Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
#3.2 浏览器访问静态文件的前缀部分
STATIC_URL = '/static/'
#3.3 目录路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]

4.在index.html中引入js

<script src = "/static/js/jquert-3.2.1.min.js"></script>

(10)接收用户发送的数据

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>

(11)返回动态页面

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>

(12)使用数据库

sqlite3

1.注册app

settings

INSTALLED_APPS=[
...
'login'
]

DATABASES = [
...
#保持不变
]

2.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)

3.terminal

python manage.py makemigrations

python manage.py migrate

4.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})

(13)总结

1.views.py

2.settings.py

3.models.py

4.html