饮冰三年-人工智能-Python-22 Python初始Django

1:一个简单的web框架

# 导包
from wsgiref.simple_server import make_server
#自定义个处理函数
def application(environ,start_response):
    start_response("200 OK",[(‘Content-Type‘,‘text/html‘)])
    return [b‘<h1>Hello,web!</h1>‘]

httpd = make_server(‘‘,8091,application)
print(‘Serving HTTP on port 8091....‘)
httpd.serve_forever()

HelloWorld

# 导包
from wsgiref.simple_server import make_server
#自定义个处理函数
def application(environ,start_response):
    # 获取路径
    path = environ["PATH_INFO"]
    start_response("200 OK",[(‘Content-Type‘,‘text/html‘)])
    if path=="/yang":
        return [b‘<h1>Hello,yang!</h1>‘]
    elif path=="/Aaron":
        return [b‘<h1>Hello,aaron!</h1>‘]
    else:
        return [b‘<h1>404!</h1>‘]

httpd = make_server(‘‘,8091,application)
print(‘Serving HTTP on port 8091....‘)
httpd.serve_forever()

2.0

# 导包
from wsgiref.simple_server import make_server

def yang():
    f=open("yang.html","rb")
    data=f.read()
    return data
def aaron():
    f=open("aaron.html","rb")
    data=f.read()
    return data
#自定义个处理函数
def application(environ,start_response):
    # 获取路径
    path = environ["PATH_INFO"]
    start_response("200 OK",[(‘Content-Type‘,‘text/html‘)])
    if path=="/yang":
        return [yang()]
    elif path=="/Aaron":
        return [aaron()]
    else:
        return [b‘<h1>404!</h1>‘]

httpd = make_server(‘‘,8091,application)
print(‘Serving HTTP on port 8091....‘)
httpd.serve_forever()

调用HTML内容

# 导包
import time
from wsgiref.simple_server import make_server

def region(req):
    pass;
def login(req):
    print(req["QUERY_STRING"])
    f=open("login.html",‘rb‘)
    data=f.read();
    return data;
def yang(req):
    f=open("yang.html","rb")
    data=f.read()
    return data
def aaron(req):
    f=open("aaron.html","rb")
    data=f.read()
    return data
def show_time(req):
   times=time.ctime()
   # 方法一:通过模板使用
   # con=("<h1>time:%s</h1>" %str(times)).encode("utf8")
   # return con
   # 方法二:字符串替换
   f = open("show_time.html", "rb")
   data = f.read()
   data=data.decode("utf8")
   data =data.replace("{{time}}",str(times))
   return data.encode("utf8")
# 定义路由
def router():
    url_patterns=[
        ("/login",login),
        ("/region", region),
        ("/yang", yang),
        ("/aaron", aaron),
        ("/show_time",show_time),
    ]

    return url_patterns
#自定义个处理函数
def application(environ,start_response):
    # 获取路径
    path = environ["PATH_INFO"]
    start_response("200 OK",[(‘Content-Type‘,‘text/html‘)])
    url_patterns = router()
    func =None
    for item in url_patterns:
        if item[0]==path:
           func=item[1]
           break
    if func:
        return [func(environ)]
    else:
        return [b‘404‘]
httpd = make_server(‘‘,8091,application)
print(‘Serving HTTP on port 8091....‘)
httpd.serve_forever()

模拟路由

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
     <style>
        *{
            margin: 0;
            padding: 0;
        }
    </style>
</head>
<body>
    <h1>时间:{{time}}}</h1>
</body>
</html>

show_time.html

2:一个简单的django案例

  Django的下载与安装

  

  如何检验是否安装成功?

  

  2.1 创建django项目的两种方法  

--创建Django项目
django-admin startproject mysite

--创建应用
python manage.py startapp blog

通过命令创建

方式2:通过Pycharm创建

创建成功

大致分为三步

a:修改urls.py 类似控制器,把想要展示的内容通过地址配置一下

b:在views中设置具体的逻辑

c:在templates中设置要显示的页面内容

通过命令行启动django。

python manage.py runserver 8091

如何引用js

a:添加static文件,并把js放置到该文件下

b:在setting文件中配置

c:在对应的文件中做引用

URL配置(URLconf):又叫做路由系统,其本质是提供路径和视图函数之间的调用映射表。

格式:

  urlpatterns=[

    url(正在表达式,views视图函数,参数,别名)

  ]

例1:匹配 XXX/articles/年份(只能匹配4位数字)

from django.contrib import admin
from django.urls import path
from django.conf.urls import  url
from blog import views
urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘show_time/‘,views.show_time),
    url(r‘^articles/[0-9]{4}/$‘, views.year_archive),

]

urls.py--1.0

from django.shortcuts import render,HttpResponse
import time
def show_time(request):
    # return HttpResponse("Hello")
    return render(request,"index.html",{"time":time.ctime()})
# Create your views here.
def year_archive(request):
    return HttpResponse("2018");

Views.py

例2:如何获取到地址栏中的年份(通过路由添加()匹配)

例3:给分组命名

urls中的配置

url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})$‘, views.year_archive),

views视图中的代码

return HttpResponse(year+"-"+month)

例四:注册小练习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <p>姓名 <input type="text" name="name"></p>
    <p>年龄 <input type="text" name="age"></p>
    <p>爱好 <input type="checkbox" name="hobby" value="1">读书
            <input type="checkbox" name="hobby" value="2">写字
            <input type="checkbox" name="hobby" value="3">看报
    </p>
    <p><input type="submit"></p>
</form>
</body>
</html>

Register.html

from django.shortcuts import render,HttpResponse
import time
def show_time(request):
    # return HttpResponse("Hello")
    return render(request,"index.html",{"time":time.ctime()})
# Create your views here.
def year_archive(request,month,year):
    return HttpResponse(year+"-"+month)

def Register(request):
    if request.method=="POST":
        con="Hello,%s,你的年龄是%s"%(request.POST.get("name"),request.POST.get("age"))
        return HttpResponse(con)
    return render(request,"Register.html")

Views.py

"""django01 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path(‘‘, views.home, name=‘home‘)
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path(‘‘, Home.as_view(), name=‘home‘)
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path(‘blog/‘, include(‘blog.urls‘))
"""
from django.contrib import admin
from django.urls import path
from django.conf.urls import  url
from blog import views
urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘show_time/‘,views.show_time),
    url(r‘^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})$‘, views.year_archive),
    url(r‘^Register/‘, views.Register),

]

urls.py

注意:需要把这句代码给注释掉

效果图

在url中给地址设置一个别名,这样后期Register名称的修改将不影响系统中其他调用的功能

URL分发

效果:

原文地址:https://www.cnblogs.com/YK2012/p/10074749.html

时间: 2024-10-09 02:21:51

饮冰三年-人工智能-Python-22 Python初始Django的相关文章

饮冰三年-人工智能-Python-10之C#与Python关系

1:注释 C# 中 单行注释:// 多行注释:/**/ python 中 单行注释:# 多行注释:"""内容""" 2:字符串 C#中 "" 用双引号如("我是字符串") Python中 "我是字符串" '我是字符串' """我是字符串""" '''我是字符串''' 2.1 字符串支持乘法 (特有).表示输出多次 n1 = &q

饮冰三年-人工智能-Python-46 Python之 初识ECMAScript6

一.ECMAScript与JavaScript 的关系 前者是后者的规格,后者是前者的一种实现.在日常场合,这两个词是可以互换的. 二.let和const命令 1.let与var var:变量提升 与 let:块级作用域 <script> console.log(a) //输出结果: undefined console.log(b) //直接报错: Uncaught ReferenceError: Cannot access 'b' before initialization var a =

饮冰三年-人工智能-Python-20 Python线程

进程:最小的数据单元 线程:最小的执行单元 一: 1:线程1 import threading #线程 import time def Music(): print("Listen Music Begin %s" %time.ctime()) time.sleep(3) print("Listen Music End %s" %time.ctime()) def Game(): print("Play Game Begin %s" %time.c

饮冰三年-人工智能-linux-02 初始Linux

参考博客:https://www.cnblogs.com/linhaifeng/articles/6045600.html 1:初始Linux命令 右击,开启终端,或者ctrl+alt[F1-F6]的方式开启终端 普通用户登录后系统的提示符$;root登录后提示符为#: 退出终端:exit: 关闭系统:init 0: Linux命令的基本格式:命令 [选项] [参数] 命令:告诉系统做什么?选项:命令的运行方式.参数:命令操作的是什么 1.1 展示文件 ls -l /boot : ls -a 展

饮冰三年-人工智能-linux-08 软件包管理

1:软件包存放的位置 media/CentOS_6.9_Final/Packages文件夹下 2.RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写. 2.1 常用的命令 -i:安装(Install)软件 -u:升级(update)更新 -e:删除(Erase) -v:显示详细的处理信息 -h:查看进度,卸载不能用 -q:查询(query) -qa:显示目前操作系统上安装的全部软件包 安装:rpm -ivh 软件包名1 软件包名2 查询:rpm –qa | gre

饮冰三年-人工智能-Python-11之HelloWor

1:安装不在介绍,下载软件下一步即可,配置环境变量(Python37会默认配置环境变量的) D:\Programs\Python\Python37\Scripts\;D:\Programs\Python\Python37\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\ 表示安装成功! 2:创建一个新的文件 通过解释器,输出 同样,在Linux系统中也可以运行 3:常见的语句

饮冰三年-人工智能-Python-12之利其器pycharm

1:下载.安装.与激活这里不再介绍了.需要注意的是激活时需要修改C:\Windows\System32\drivers\etc\hosts文件 2:工具使用 2.1 HelloWorld  File>>New>>Python File 2.2 模板 file>>Settings>>Editor>>Python Script 2.3 设置字体大小可以通过鼠标滚动快速调节 2.4 显示行号 "右击" 3 快捷键 3.1 print

饮冰三年-人工智能-linux-01通过VM虚拟机安装contes系统

先决条件:VM虚拟机的安装.contes系统的镜像文件 1:创建新的虚拟机 2:下一步,稍后安装操作系统 3:选择对应的系统 4:选择对应的路径 至此虚拟机已经创建完成(相当于买了一台新电脑) 5:编辑虚拟机设置,将准备好的镜像文件放置到虚拟机中 注意:启动虚拟机的时候会报一个错误:这是由于主机没有启用Intel VT-x,修改以后即可正常使用 5:开始安装 跳过检查==选择中文安装提示 选择英文键盘 选择基本存储设备 首次安装忽略所有数据 暂时不配置网络,后期通过命令行设置,直接下一步 选择时

饮冰三年-人工智能-linux-04 vim编辑器

vim的三种模式:命令行模式.编辑模式.扩展模式 1:命令行模式下常见的操作 删除 a):dd 删除光标所在当前行 b):ndd   删除光标所在当前行后的n行 复制 c):yy 复制光标所在当前行 d):nyy 复制光标所在当前行后的n行 粘贴 e):p 粘贴光标所在下一行 f):np   把内容粘贴多次 剪切 g):ddp 先删除,再粘贴 撤销与反撤销 h):u 撤销 i):ctrl+r   反撤销 快速移动光标 j):gg 定位到文件的首行 k):nG   定位到文件的某一行 k):GG