1 Django框架使用系列(一) 开篇准备实例

1、 安装django

pip install django #安装django

django-admin startproject mysite2 #创建项目

2. 新建一个 views.py 文件

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age

# 视图的函数第一个参数必须是request
# 视图函数必须有返回值,是HttpResponse对象
# 视图函数名不能重复
def  index_view(request):
    # print(request.GET)
    # print(request.method)
    # print(request.POST)
    # return HttpResponse('这是项目的首页')

    # 方法一 使用loader 加载
    # t = loader.get_template('index.html')
    # html = t.render()
    # return HttpResponse(html)

    # 方法二 使用 render 加载
    # return render(request,'index.html')

    # 方法三  传递数据进入网页

    '''
    在模板中使用变量方法
    {{ 变量名 }}

    {{ 变量名.key }}
    {{ 变量名.index}}
    {{ 变量名.方法 }}
    {{ 函数名 }}
    '''
    # username = "slade"
    # return render(request, 'index.html', {"username": username})

    username = "walalce"
    age = 18
    citys = ["hanam","anhui","beijing"]
    dicts = {"name":"eric","age":12,"gender":"famale"}
    qtx = Person('slade.lee',18)
    def myfun():
        return '这是一个函数myfun执行的结果'
    #locals() 根据局部变量生成字典返回
    return render(request, 'index.html', locals())

def test_view(request):
    if request.method == "GET":
        # 当用户发送GET请求时要做的处理, 获取数据
        # 1. 直接在地址栏写url
        # 2. 通过超链接点击跳转
        # 3. 图片/script 的src 属性
        # 4. form 表单
        # http://127.0.0.1:8000/test/?username=shibw&age=18
        # data = request.GET
        # print(data)
        # # "我叫%s" %data["username"]
        # return  HttpResponse(f"我叫{data.get('username')}")


        #http://127.0.0.1:8000/test/?answer=A&answer=B&answer=C
        data = request.GET
        print(data.getlist('answer')) #['A','B','C']
        return HttpResponse('<h1>ok</h1>',status=404)




    elif request.method == "POST":
        # 当用户发送POST请求时要做的处理,提交数据
        # django 出于安全角度考虑默认会对post方式提交的数据做验证
        # 在settings.py中 MIDDLEWARE 大概 46行左右  注释掉就可以了 #'django.middleware.csrf.CsrfViewMiddleware',
        username = request.POST.get('username')
        print(username)
        return HttpResponse(f'欢迎{username}')

3. url.py 文件中添加路由信息

from django.contrib import admin
from django.urls import path

from mysite2 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    #http://127.0.0.1:8000/index/
    path('index/',views.index_view),
    #http://127.0.0.1:8000/test/
    path('test/',views.test_view),
]

4. 修改 setting.py 文件 添加一行 添加templates的文件夹

'DIRS': [
    os.path.join(BASE_DIR,'templates')
],

5.新建一个 目录 templates

在目录下新建一个index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--  p*3>lorem   生成以下三个p标签-->

<h1>这是一个页面 </h1>
<p> 字符串:{{ username }}</p>
<p> 数字:{{ age }}</p>
<p> 列表:{{ citys }}</p>
<ul>
    <li>{{citys.0}}</li>
    <li>{{citys.1}}</li>
    <li>{{citys.2}}</li>
</ul>
<p> 字典:{{ dicts }}</p>
<ul>
    <li>{{dicts.name}}</li>
    <li>{{dicts.age}}</li>
    <li>{{dicts.gender}}</li>
</ul>
<p> 对象:{{ qtx }}</p>
<ul>
    <li>{{qtx.name}}</li>
    <li>{{qtx.age}}</li>
    <li></li>
</ul>
<p> 函数:{{ myfun }}</p>

<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dignissimos distinctio eveniet excepturi hic quae quis
  sapiente totam vero voluptas. Animi dicta natus non quo totam. Architecto fugit inventore nihil perspiciatis?</p>
<p>Debitis distinctio eius et explicabo harum ipsam labore laudantium libero maiores minima mollitia necessitatibus nemo
  neque nesciunt nihil odit officiis omnis perferendis quidem quisquam quod recusandae, rem suscipit temporibus,
  tenetur!</p>
<p>Beatae, consequatur consequuntur deleniti eius eos expedita id magni minima nesciunt nisi odit quis quisquam. Aliquam
  excepturi iusto minus nesciunt obcaecati odio possimus quis quo repellendus sed, similique sint velit.</p>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值