zoukankan      html  css  js  c++  java
  • django的流程和命令行工具

    django实现流程
    django #安装: pip3 install django 添加环境变量 #1 创建project django-admin startproject mysite ---mysite ---settings.py ---url.py ---wsgi.py ---- manage.py(启动文件) #2 创建APP python mannage.py startapp app01 #3 settings配置 TEMPLATES STATICFILES_DIRS=( os.path.join(BASE_DIR,"statics"), ) STATIC_URL = '/static/' # 我们只能用 STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找#4 根据需求设计代码 url.py view.py #5 使用模版 render(req,"index.html") #6 启动项目 python manage.py runserver 127.0.0.1:8090 #7 连接数据库,操作数据 model.py

    django的命令行工具

    django-admin.py 是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每一个Django Project里都会有一个mannage.py。

    <1> 创建一个django工程 : django-admin.py startproject mysite

            当前目录下会生成mysite的工程,目录结构如下:

           

    • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
    • settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
    • urls.py ----- 负责把URL模式映射到应用程序。

    <2>在mysite目录下创建blog应用: python manage.py startapp blog

           

    <3>启动django项目:python manage.py runserver 8080

           这样我们的django就启动起来了!当我们访问:http://127.0.0.1:8080/时就可以看到:

           

    <4>生成同步数据库的脚本:python manage.py makemigrations  

                         同步数据库:  python manage.py migrate   

           注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下

                    的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。            

    <5>当我们访问http://127.0.0.1:8080/admin/时,会出现:

           

           所以我们需要为进入这个项目的后台创建超级管理员:python manage.py createsuperuser设置好用户名和密码后便可登录啦!

    <6>清空数据库:python manage.py  flush

    <7>查询某个命令的详细信息: django-admin.py  help  startapp

           admin 是Django 自带的一个后台数据库管理系统。

    <8>启动交互界面 :python manage.py  shell

         这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

    <9> 终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用

    实例练习1-提交数据并展示

    复制代码
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>创建个人信息</h1>
    
    <form action="/userInfor/" method="post">
    
        <p>姓名<input type="text" name="username"></p>
        <p>性别<input type="text" name="sex"></p>
        <p>邮箱<input type="text" name="email"></p>
        <p><input type="submit" value="submit"></p>
    
    </form>
    
    <hr>
    
    <h1>信息展示</h1>
    
    <table border="1">
    
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>邮箱</td>
        </tr>
        {% for i in info_list %}
    
            <tr>
                <td>{{ i.username }}</td>
                <td>{{ i.sex }}</td>
                <td>{{ i.email }}</td>
            </tr>
    
        {% endfor %}
    
    </table>
    
    </body>
    </html>
    
    
    -----------------------url.py---------------------------------------
    url(r'^userInfor/', views.userInfor)
    
    -----------------------views.py--------------------------------------
    
    info_list=[]
    
    def userInfor(req):
    
        if req.method=="POST":
            username=req.POST.get("username",None)
            sex=req.POST.get("sex",None)
            email=req.POST.get("email",None)
    
            info={"username":username,"sex":sex,"email":email}
            info_list.append(info)
    
        return render(req,"userInfor.html",{"info_list":info_list})
    View Code

    实例练习2-提交数据并展示(数据库)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>创建个人信息</h1>
    
    <form action="/userInfor/" method="post">
    
        <p>姓名<input type="text" name="username"></p>
        <p>性别<input type="text" name="sex"></p>
        <p>邮箱<input type="text" name="email"></p>
        <p><input type="submit" value="submit"></p>
    
    </form>
    
    <hr>
    
    <h1>信息展示</h1>
    
    <table border="1">
    
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>邮箱</td>
        </tr>
        {% for i in info_list %}
    
            <tr>
                <td>{{ i.username }}</td>
                <td>{{ i.sex }}</td>
                <td>{{ i.email }}</td>
            </tr>
    
        {% endfor %}
    
    </table>
    
    </body>
    </html>
    
    
    ----------------------------------------------models.py
    from django.db import models
    
    # Create your models here.
    
    
    class UserInfor(models.Model):
    
        username=models.CharField(max_length=64)
        sex=models.CharField(max_length=64)
        email=models.CharField(max_length=64)
    
    ----------------------------------------------views.py
    
    from django.shortcuts import render
    
    from app01 import models
    # Create your views here.
    
    
    def userInfor(req):
    
        if req.method=="POST":
            u=req.POST.get("username",None)
            s=req.POST.get("sex",None)
            e=req.POST.get("email",None)
    
    
           #---------表中插入数据方式一
                # info={"username":u,"sex":e,"email":e}
                # models.UserInfor.objects.create(**info)
    
           #---------表中插入数据方式二
            models.UserInfor.objects.create(
                username=u,
                sex=s,
                email=e
            )
    
            info_list=models.UserInfor.objects.all()
    
            return render(req,"userInfor.html",{"info_list":info_list})
    
        return render(req,"userInfor.html")
    View Code
  • 相关阅读:
    C#.NET Split 的几种使用方法
    给网站指明手机网网站
    手机访问网站自动跳转到手机版
    手机网页点击链接触发手机自动拨打或保存电话的代码
    图片切换效果2(定时+左右按钮)
    java HttpClient设置代理
    将应用部署到Tomcat根目录的方法
    Java中ArrayList类的用法
    JSP/Serlet 使用fileupload上传文件
    java 格式化字符串
  • 原文地址:https://www.cnblogs.com/navysummer/p/8454619.html
Copyright © 2011-2022 走看看