• day18 js 正则,UI框架,Django helloworld 以及完整工作流程


    JS正则:
       text     判断字符串是否符合规定的正则表达式
       exec    获取匹配的数据
     
    默认情况下:
    只要能匹配到就返回true 否则返回false

    只匹配数字:

     

    所以JS 正则的使用方式:

    1 写一个满足需求的js正则匹配式

    2 使用test来验证是否符合

    那么如果我们想获取里面的数据该怎么办呢?

    exec:

    默认只拿第一个

    使用分组:

    全局匹配:

     注意:会从开始一直匹配,每次匹配一个,直到匹配完,会返回一个null 然后再匹配的话会从头重新开始

     

    全局使用分组:

    每次返回两个值,第一个为匹配的,第二个为去除正则后的数据

    复习下正则:

    多行匹配:
    默认:

     使用多行匹配:
    会把每一行的开头都作为一个字符串的开头来匹配,尽管这是一个字符串!

     

    这里再声明一下,使用自定义动作的时候一定要加上return  才能取消自带的动作

    对于checkbox 来说,默认事件先执行,然后才执行自定的事件

     

    完整验证过程:

     1 js 前端验证  (可以禁用,一旦禁用,只能靠后端验证)
     2 后端python 验证

     学习框架:

     已知的有

    1 jQuery UI

    2 Bootstrap


    BootStrap 可适用于前端展示及后端管理的都可以

    响应式布局效果:

     

    在修改别人的插件的时候,要更改东西的时候就使用 important 表名最重要的!!! 这样就不关心前后顺序了

     

     各种轮播图等、  都有插件

    所有web框架的本质:

    使用一个模块,使用python3

     

    python 3 中三种方式转换为字节:

     

     判断客户端的请求路径

     

    使用字典形式,省去做if 判断:

    从文件中返回数据:

     

    分开写:

     所谓各种名词 就是下面的框架:

     

    开始 Django

    1 安装

    2 创建工程

    3 运行

    访问:

     

     

    添加一个自定义的url

     

    实践:
    修改 urls.py
    from django.conf.urls import url
    from django.contrib import admin
    from django.shortcuts import HttpResponse
    def home(request):
        return HttpResponse('<h1>Frist</h1>')
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^home/', home),
    ]

      写一个时间更新的页面:

    from django.conf.urls import url
    from django.contrib import admin
    from django.shortcuts import HttpResponse
    def time(request):
        import time
        info = time.ctime()
        return HttpResponse(['<h1>时间服务器</h1>',info])
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^time/', time),
    ]
    

     创建一个网站的多个app用来处理不同的事情:

     

    实践:

     

    然后把逻辑代码放到新的目录里:

     

     修改urls:

     

     访问:

     

    app目录的详细解释:

     一行实现读取文件:

     

     文件是通过配置里的目录来配置的,不然找不到文件的

     实践:

     


    1 编写登陆逻辑函数

    from django.shortcuts import HttpResponse
    from django.shortcuts import render
    def login(request):
        return render(request,'login.html')
    def time(request):
        import time
        info = time.ctime()
        return HttpResponse(['<h1>时间服务器</h1>',info])
    

    2 编写登陆页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            label{
                 80px;
                text-align: right;
                display: inline-block;
            }
        </style>
    </head>
    <body>
        <form action="/login" method="post">
            <p>
                <label for="username">用户名:</label>
                <input id="username" type="text" />
            </p>
            <p>
                <label for="password">密码:</label>
                <input id="password" type="text" />
                <input type="submit" value="提交" />
            </p>
        </form>
    </body>
    </html>
    

    3添加路由

     

     4 检查配置

    5 启动并测试

    静态文件配置:

    创建Django app 后首先需要操作:

     使用静态文件:

     

    实践:
    1 创静态目录

     

    2  修改配置文件,添加静态文件目录

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

    3  添加静态文件

     

    4  修改html中的引用

    5 测试

     

     注释掉跨站 csrf:

     

     判断用户是GET 还是POST

     

     获取用户提交的信息:

     

    判断数据:
    如果需要跳转需要用到redirect 模块,需要导入:

     

    Django特有的数据交互方式:
    用户登陆信息不正确后返回一个错误信息

     

    程序里写:

     

     完整的基本的用户名密码认证:

     

    实践:

    1 修改html 增加name 在POST 提交的时候才能分辨是什么内容,添加Django 特有的替换字符串的变量

    action 的url 要和urls 里配置的一样,要么都有/ 要么都没有,不然会报错。

    2 程序添加判断请求方式,获取输入的数据,并判断是否正确

     

     3 实验:

     在html 页面中使用for 循环来生成网页信息:

     获取数据并添加到当前页面:

     

    HTML页面:

     
    实践:
    1 添加静态页面,并做可以for 循环的页面
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body style="margin: 0">
        <div style="height: 48px;background-color: #dddddd"></div>
        <div>
            <form action="/home" method="post">
                <input type="text" name="username" placeholder="用户名" />
                <input type="text" name="email"  placeholder="邮箱"/>
                <input type="text" name="gender"  placeholder="性别"/>
                <input type="submit" value="添加" />
            </form>
        </div>
        <div>
            <table>
                {% for row in user_list %}
                    <tr>
                        <td>{{ row.username }}</td>
                        <td>{{ row.gender }}</td>
                        <td>{{ row.email }}</td>
                    </tr>
                {% endfor %}
            </table>
        </div>
    </body>
    </html>
    

    2 添加路由并添加处理的函数

    urls

     

    业务逻辑函数

    USER_LIST =[
        {'username':'alex','email':'abc@12.com','gender':'男'},
        {'username':'alex','email':'abc@12.com','gender':'男'}
    ]
    def home(request):
        if request.method == 'POST':
            #在request中获取用户提交的数据
            u = request.POST.get('username')
            e = request.POST.get('email')
            g = request.POST.get('gender')
            temp = {'username':u,'email':e,'gender':g}
            USER_LIST.append(temp)
        return render(request,'home.html',{'user_list':USER_LIST})
    

    3 启动并测试

     

    重新打开页面也还有数据,但是重启程序就没有了,所以需要把数据写到存储中,例如写入redis 中,就可以持久化了

    经过以上一些实践,我们大概了解了Djanago 的工作方式,下面还Django的处理流程及部件组成图:

    回顾一下以上的内容,做一个整理:

    Django的程序完成开发流程:

    模板语言的语法:

       

      

      

       if 也可以嵌套,直接在里面写,但是要记得写上结尾符

       

     EOF

  • 相关阅读:
    几种网络LeNet、VGG Net、ResNet原理及PyTorch实现
    学习Faster R-CNN代码faster_rcnn(八)
    应用安全
    应用安全
    应用安全
    应用安全
    应用安全
    渗透测试
    应用安全
    应用安全
  • 原文地址:https://www.cnblogs.com/yangever/p/6145829.html
Copyright © 2020-2023  润新知