Python3-第四阶段

了解一下python的三大web框架

一.Django框架

安装

pip3 install Django

创建一个Django项目

django-admin.py startproject 项目名字

django-admin startproject 项目名字
创建完成后有一个和项目名称一样的应用,该应用是对项目整体的设置,包含以下重要文件
asgi.py
settings.py项目设置文件
urls.py  链接设置文件
wsgi.py  部署服务器设置文件

创建应用(要在项目目录中,和manage.py文件同级别)

python manage.py startapp 应用名字

django-admin.py startapp 应用名字
创建完成后有以下几个文件
admin.py    后台相关设置文件
apps.py    应用相关的设置文件
models.py   数据库模型设置文件
tests.py    测试文件
views.py    视图文件
migrations目录  数据库设置文件

将应用添加到项目中,将项目同名的目录中settings.py文件中INSTALLED_APPS属性中添加应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '自定义项目名字',
]

作用:项目启动会自动加载应用中的templates目录中的文件(模板文件)和static目录中的文件(静态文件)

1.视图层

主要是看应用中views.py文件项目中urls.py文件

views.py文件

from django.http import HttpResponse
1.常用方式
def index(request):            index是自定义的,但是规定第一个参数为request(包含GET和POST的请求,浏览器,系统等数据)
     return  HttpResponse('welcome')    返回给客户端浏览器页面
2.如果需要获取参数
客户端传给服务器的链接为http://127.0.0.1:8000/.../?a=4&b=5,可以看到传参为GET方式(?后面是参数用&分割)
def index(request):
    name = request.GET['a']        获取参数,返回值字符串类型,request.GET相当于一个字典
    name = request.GET.get('a',0)    获取参数,返回值字符串类型,没有则返回0
3.另一种获取参数
客户端传给服务器的链接为http://127.0.0.1:8000/.../4/5,传参也为GET方式(按照顺序进行指定)
def index(request,a,b):            该方式获取的也是字符串类型
    sum = int(a)+int(b)
4.将参数传给指定html页面
from django.shortcuts import render
def 自定义函数(request):
    return render(request, 'html页面.html')    没有返回任何值,html的根地址是各应用的templates目录
  return render(request, 'people/index.html')  templates目录下有people目录
  return render(request, 'html页面.html',{'str1': s1,'str2':s2})  第三个参数为返回的值

urls.py文件

在urlpatterns变量中添加path路径
from 应用 import views        这里可能会报红,但是没关系
urlpatterns = [
    path('admin/', admin.site.urls),  后面的'/'必须要加上
    path('',views.index,name='...'),
  path('index/',views.index),    这样浏览器访问127.0.0.1:8000/index/即可, ] 解释path参数 参数一:链接地址,
''表示项目根目录,如果需要项目中应用1,可设置'应用1/'(也可使用正则),也可以直接定义传入值的类型,比如 path('add/<int:a>/<int:b>/', calc_views.add2, name='add2')或
  return HttpResponseRedirect(reverse('必须地址名字', args=(a, b)))这种可以进行页面跳转() 参数二:应用中views.py文件中的自定义方法 参数三:给地址起别名,方便视图,模板或模型中使用(可忽略不设置)

2.模板层

在应用中创建templates目录,然后可以在该目录中创建html文件来写页面

Django的模板系统会自动找到各应用下的templates目录

注意:为了保证在多应用时查找准确,可以在templates目录中再创建一个和应用同名的子目录,在子目录中新建html文件

1.对<a>标签做跳转,并验证视图层中的urls.py的传参方式
<a href="{% url 'name' %}">link</a>
<a href="{% url 'name' 参数1 参数2 %}">link</a>
2.获取视图层传过来的参数,可使用{{ '参数的key' }}来获取参数
3.页面中使用for
    {% for i in 集合参数 %}
        {{ item }},
    {% endfor %}
    如何集合参数中有空值可用for empty
    <ul>
    {% for n in n_list %}
        <li>{{ n.name }}</li>
    {% empty %}
        <li>抱歉,列表为空</li>
    {% endfor %}
    </ul>
4.页面中使用if
    {% if 条件 %}
    执行语句
    {% elif 条件 %}
    执行语句
    {% else %}
    执行其他语句
    {% endif %}
    可以搭配下面变量使用
    forloop.counter        索引从1开始算
    forloop.counter0    索引从0开始算
    forloop.revcounter    索引从最大长度到1
    forloop.revcounter0    索引从最大长度到0
    forloop.first        当遍历的元素为第一项时为真
    forloop.last        当遍历的元素为最后一项时为真
    forloop.parentloop    用在嵌套的for循环中,获取上一层for循环的forloop
5.页面中使用==,!=,>=,<=,>,<
    {% if num <= 100 and num >= 0 %}
    num在0到100之间
    {% else %}
    数值不在范围之内!
    {% endif %}
6.页面中使用and,or,not,in,not in
7.页面中获取当前网址
    {{ request.path }}
8.页面中获取当前用户
    {{ request.user }}
9.判断用户是否已登录
    {% if request.user.is_authenticated %}
        {{ request.user.username }},您好!
    {% else %}
        请登陆,这里放登陆链接
    {% endif %}
10.获取当前GET方式的参数
    {{ request.GET.urlencode }}
11.通过表单将值传递给后台
  <form action="/add/" method="get">    action指定地址,前面加'/'表示根地址,否则是上个页面的相对地址,后面'/'可加可不加
     a:<input type="text" name="a"><br>   后台通过名字来获取输入的值
     b:<input type="text" name="b"><br>
    <input type="submit" value="提交">
  </from>

3.模型层

二.Flask框架

三.Tornado框架

猜你喜欢

转载自www.cnblogs.com/timeTraveler/p/12296506.html