美文网首页
Django试图与网址

Django试图与网址

作者: 高阳刘 | 来源:发表于2017-10-13 14:41 被阅读0次

    一、get方法访问视图

    1. 新建一个django项目
    django-admin.py startpoject myweb(项目的名字)
    
    1. 进入项目文件夹下面,创建一个app
    python manage.py startapp blog或
    django-admin.py startapp blog(app的名字
    
    1. 找到myweb/myweb/setting.py修改相关内容
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog'(app的名字),
    )
    
    备注: 这一步是干什么呢? 新建的 app 如果不加到 INSTALL_APPS 中的话,django 就不能自动找到app中的模板
    文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件) , 后面你会学习到它们分别用来
    干什么.
    
    1. 在app下面创建一个templates包,创建一个find.html文件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        this 测试!
    <div>
        <b>{{x}}</b> <b>{{y}}</b> <b>{{z}}</b>
    </div>
    </body>
    </html>
    
    1. 定义视图函数(访问页面时的内容)

    在blog中的目录中,更改view.py中的源码

    def find(request):
        if request.GET:
            x = request.GET['x']
            y = request.GET['y']
            z = int(x) + int(y)
        return render(request, 'find.html', {'x': x, 'y': y, 'z': z})
        
    上面定义了一个find()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包好了get
    和post的内容,用户浏览器,系统等信息在里面
    
    
    1. 然后终端上运行python manage.py runserver,会出现以下
    Performing system checks...
    
    System check identified some issues:
    
    WARNINGS:
    blog.People.age: (fields.W122) 'max_length' is ignored when used with IntegerField
        HINT: Remove 'max_length' from field
    
    System check identified 1 issue (0 silenced).
    August 29, 2017 - 10:56:24
    Django version 1.11, using settings 'myweb.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    
    
    1. 打开浏览器访问
    http://127.0.0.1:8000/find/?x=10&y=10
    
    就会看到以下的结果
    
    this 测试!
    10 10 20 
    
    

    二、post方式访问视图

    1. 新建一个django项目
    django-admin.py startpoject myweb(项目的名字)
    
    1. 进入项目文件夹下面,创建一个app
    python manage.py startapp blog或
    django-admin.py startapp blog(app的名字
    
    1. 找到myweb/myweb/setting.py修改相关内容
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog'(app的名字),
    )
    
    备注:同上
    
    1. 在app下面创建一个templates包,创建一个find.html文件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div>
            <form action="/post_demo" method="post">
                <input type="text" name="x">
                <input type="text" name="y">
                <!--post提交必须加上-->
               {% csrf_token %}
                <input type="submit" value="提交">
            </form>
        </div>
    </body>
    </html>
    
    1. 定义视图函数(访问页面时的内容)

    在blog中的目录中,更改views.py中的源码

    def post_demo(request):
        if request.method == "POST":
            x = request.POST['x']
            y = request.POST['y']
            z = int(x) + int(y)
    
            print(z)
        return render(request, 'find.html')
        
    上面定义了一个find()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包好了get
    和post的内容,用户浏览器,系统等信息在里面
    
    
    1. 然后终端上运行python manage.py runserver,会出现以下
    Performing system checks...
    
    System check identified some issues:
    
    WARNINGS:
    blog.People.age: (fields.W122) 'max_length' is ignored when used with IntegerField
        HINT: Remove 'max_length' from field
    
    System check identified 1 issue (0 silenced).
    August 29, 2017 - 10:56:24
    Django version 1.11, using settings 'myweb.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    
    
    1. 打开浏览器访问
    http://127.0.0.1:8000/post_demo
    
    就会看到以下的结果
    
    两个输入框,一个提交按钮
    
    输入10,10,点击提交
    
    查看终端 输出20
    
    打开调试器,就会看到
    
    form data:
    x: 10
    y: 10
    csrfmiddlewaretoken:"v6AR7UCs2h0yJQh0g4DrHErbDKlUvRSI6r7yD8WoRTmsWyexS9ASf3zkHc15f2Q8"
    
    

    相关文章

      网友评论

          本文标题:Django试图与网址

          本文链接:https://www.haomeiwen.com/subject/hwvoyxtx.html