Django学习1

一、入门

1.cmd进入目录

C:\Users\Administrator\PycharmProjects\untitled7>cd 01-hello

2、创建文件(mysite

untitled7\01-hello>django-admin startproject mysite

3、先进入mysite,再创建文件app(helloapp)

untitled7\01-hello\mysite>python manage.py startaapp helloapp

4、修改views和URL

在这里插入图片描述

在这里插入图片描述

5、运行服务器

untitled7\01-hello\mysite>python manage.py runserver

6、拷贝链接再加上 URL

在这里插入图片描述

二、实例1:云端留言版(1)

1、开发流程:

步骤1:新建工程 cloudms
步骤2-1:新建应用 msgapp
步骤2-2:增加模板,即显示界面的HTML/CSS/JS代码,配置路径
步骤2-3:设定URL路由,本地路由和全局路由
步骤2-4:编写交互代码
步骤3:运行工程

2、实操

步骤1:新建工程 cloudms

\>django-admin startproject cloudms

步骤2-1:先进入cloudms,再新建应用 msgapp

\>cd cloudms 
python manage.py startapp msgapp

步骤2-2:增加模板,配置路径
msgapp/templates/MsgSingleWeb.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>云端留言板(1)首页</title>
</head>
<body>
<h1>提交留言功能区</h1>
<form action="/msggate/" method="post">
    {% csrf_token %}
    发送方 <input type="text" name="userA"/> <br>
    接收方 <input type="text" name="userB"/> <br>
    消息文 <input type="text" name="msg"/> <br>
    <input type="submit" value=" 留言提交"/>
</form>
<h1>获取留言功能区</h1>
<form action="/msggate/" method="get">
    接收方 <input type="text" name="userC"/> <br>
    <input type="submit" value=" 留言获取"/>
</form>
<table borader="1">
    <thead>
    <th>留言时间</th>
    <th>留言来源</th>
    <th>留言信息</th>
    </thead>
    <br>
    <tbody>
    {% for line in data %}
    <tr>
        <td>{{ line.time }}</td>
        <td align="center">{{ line.userA }}</td>
        <td>{{ line.msg }}</td>
    </tr>
    {% endfor %}
    </tbody>
</table>

</body>
</html>

步骤2-2:增加模板,配置路径
cloudms/settings.py

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

步骤2-3:设定URL路由,本地路由和全局路由
msgapp/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.msgproc),
]

cloudms/urls.py

from django.contrib import admin
from django.urls import include,path

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

步骤2-4:编写交互代码
msgapp/views.py

from django.shortcuts import render
from datetime import datetime


def msgproc(request):
    datalist = []
    if request.method == "POST":
        userA = request.POST.get("userA", None)
        userB = request.POST.get("userB", None)
        msg = request.POST.get("msg", None)
        time = datetime.now()
        with open("msgdata.txt", "a+") as f:
            f.write("{}--{}--{}--{}--\n".format(userB, userA, msg, time.strftime("%Y-%m-%d %H:%M:%S")))
    if request.method == "GET":
        userC = request.GET.get("userC", None)
        if userC != None:
            with open("msgdata.txt", "r") as f:
                cnt = 0
                for line in f:
                     linedata = line.split('--')
                     if linedata[0] == userC:
                         cnt = cnt + 1
                         d = {"userA": linedata[1], "msg": linedata[2], "time": linedata[3]}
                         datalist.append(d)
                     if cnt >= 10:
                         break
    return render(request, "MsgSingleWeb.html", {"data": datalist})

3、cmd命令

python manage.py runserver

三、模板语言

• 注释

单行注释: {# 这是单行注释 #}
多行注释:
{% comment %}
这是多行注释第一行
这是多行注释第二行
{% endcomment %}

• 变量

{{ name }}
如果变量本身是字典类型、列表类型或对象,用.获取元素
{{ adict.key }} {{ alist.0 }}
{{ aobject.attribute }}

• 标签

{% 关键字引导的程序逻辑 %}
标签中的关键字包括
for, endfor, block, endblock, if, elif, else,
endif, in, trans, as, with, extends 等
https://docs.djangoproject.com/en/2.0/ref/templates/language/

{% for line in data %}
<tr>
<td>{{ line.time }}</td>
<td align="center">{{ line.userA }}</td>
<td>{{ line.msg }}</td>
</tr>
{% endfor %}

• 过滤器

{{ name|过滤标签 }} {{ name|f1|f1 }}
过滤器对变量的值进行修饰
lower, escape, linebreaks, date, length等

{{ name|lower }}
{{ my_date|date:"Y-m-d" }}

三、GET与POST请求

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_45234510/article/details/104979032
今日推荐