Django----做一个简单网页的教程(适合初学者)

这篇文字适合刚学习Django的同学,如果比较熟的就不用看了。

以下都是讲在windows上的部署情况;

准备:

1、python3.6

2、pycharm profession(专业版)

3、安装Django模块

以上的安装就不讲了,比较简单,网上也有很多教程。都去官网下载安装即可。

 

前言:

学习django框架其实就是学习它的文件目录,目录下有一些必须的模块和包,当然你也可以自己在这些目录下再新建目录或模块和包。

一、我们打开pycharm新建一个Django工程(也可以直接在terminal下用指令django-admin startproject xxx创建) 

File---New Project

建好好会自动生成一个目录框架。那么来了解下这个框架里文件的作用。

 

 

二、编写业务逻辑

新建成功工程后views.py文件里是空的,需要自己编写业务逻辑。

from django.shortcuts import HttpResponse #导入HttpResponse模块

def index(request):#request是必须带的实例。类似class下方法必须带self一样
    return HttpResponse("Hello World!!")#通过HttpResponse模块直接返回字符串到前端页面

三、配置url路由

from laomomo import views#导入views模块
from django.conf.urls import url

urlpatterns=[
    url(r'^index/',views.index)#配置当访问index/时去调用views下的index方法
]

四、运行server并访问

terminal下执行 python manage.py runserver   这样执行默认的路径是127.0.0.1:8080

指定端口或地址就再后面写上,如:python manage.py runserver 127.0.0.1:8888

 

然后浏览器访问http://127.0.0.1:8888

这里的Hello World!!就是views.py文件下index方法通过HttpResponse返回到前端的。

 

问题来了,这样感觉有点简单,如果要显示一些数据呢?怎么办?那么我们就需要写html文件来承载。

五、修改views.py里的index方法如下

from django.shortcuts import render#导入render模块

#先定义一个数据列表,当然后面熟了可以从数据库里取出来
list = [{"name":'good','password':'python'},{'name':'learning','password':'django'}]

def index(request):

    return render(request,'index.html',{'form':list})#通过render模块把index.html这个文件返回到前端,并且返回给了前端一个变量form,在写html时可以调用这个form来展示list里的内容

六、编辑html文件

新建成功工程后templates文件目录下是空的,我们需要在该目录下新建一个html文件来把内容展示到前端

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body>
    <table border="1">
        <thead>
        <tr>
            <td>用户名</td>
            <td>密码</td>
        </tr>
        </thead>
        {%for line in form%}
            <tr>
                <td>{{line.name}}</td>
                <td>{{line.password}}</td>
            </tr>
        {% endfor %}
    </table>
    </body>

</html>

html里要写if或for等语句时用{%%},调用变量时用{{ }}括号

我们重新运行下server,访问浏览器应该会展示list里的数据了。

好,到这里我们可以展示后台设定好的数据给前端。这好像也不太友好。我们来做一个前端可以输入用户名和密码,然后把输入的用户和密码展示出来。

 

七、重新编写html文件

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body>
    <table border="1">
        <form action="/index/" method="post">
            {% csrf_token %}
            <P>
                <label >用户名:</label>
                <input type="text" name ='name'/>
            </P>
            <P>
                <label>密码:</label>
                <input type="text" name='password'/>
            </P>
            <p><input type="submit" value="提交"/></p>
        </form>
        <thead>
        <tr>
            <td>用户名</td>
            <td>密码</td>
        </tr>
        </thead>
        {%for line in form%}
            <tr>
                <td>{{line.name}}</td>
                <td>{{line.password}}</td>
            </tr>
        {% endfor %}
    </table>
    </body>

</html>

这里加入了用户名和密码的输入框和一个提交按钮,设置的方法试post,下面我们就需要编写views.py下的index方法来获取这个post过来的数据,然后返回给前端显示。

八、修改views.py下的index方法:

from django.shortcuts import render#导入render模块

#先定义一个数据列表,当然后面熟了可以从数据库里取出来
list = [{"name":'good','password':'python'},{'name':'learning','password':'django'}]

def index(request):
    #获取前端post过来的用户名和密码
    name = request.POST.get('name',None)
    password = request.POST.get('password',None)

    #把用户和密码组装成字典
    data = {'name':name,'password':password}
    list.append(data)

    return render(request,'index.html',{'form':list})#通过render模块把index.html这个文件返回到前端,并且返回给了前端一个变量form,在写html时可以调用这个form来展示list里的内容

 

再次运行server通过浏览器访问就会有提交的数据实时展示了的效果了

 

到这里就完成了一个简单的网页制作的过程,有问题可以向我提问。

  • 108
    点赞
  • 815
    收藏
    觉得还不错? 一键收藏
  • 45
    评论
### 回答1: 首先,需要在项目中安装django-crontab库,在项目的settings.py文件中配置INSTALLED_APPS并添加'django_crontab' 然后,在项目的根目录下新建一个cron.py文件,在文件中编定时任务代码 接着,在项目根目录下执行python manage.py crontab add 命令,将cron.py文件中的定时任务添加到crontab中 最后,在项目根目录下执行python manage.py crontab show 命令,查看已添加的定时任务 例: 1.在项目的settings.py文件中配置INSTALLED_APPS并添加'django_crontab' INSTALLED_APPS = [ ... 'django_crontab', ] 2.在项目根目录下新建一个cron.py文件,在文件中编定时任务代码 from django_crontab.app_settings import CRONJOBS @CRONJOBS.register() def my_cron_job(): print('This is a cron job') 3.在项目根目录下执行python manage.py crontab add 命令,将cron.py文件中的定时任务添加到crontab中 4.在项目根目录下执行python manage.py crontab show 命令,查看已添加的定时任务 注意: - 具体的时间表达式可以参考crontab的语法 - django-crontab默认是后台运行的,如果想在前台运行需要手动设置 ### 回答2: 使用django-crontab可以很方便地在Django项目中添加定时任务。下面是一个简单的示例: 首先,在项目的settings.py文件中安装和配置django-crontab。在INSTALLED_APPS列表中添加'django_crontab',然后在文件底部添加以下内容: ``` CRONJOBS = [ ('*/5 * * * *', 'myapp.tasks.my_task') ] ``` 这表示每5分钟执行一次名为my_task的定时任务。myapp是你的应用程序名称。接下来,我们需要创建一个任务函数,例如在myapp/tasks.py文件中: ``` from django_crontab import CronJobBase, Schedule class MyTask(CronJobBase): RUN_EVERY_MINS = 5 schedule = Schedule(run_every_mins=RUN_EVERY_MINS) code = 'myapp.my_task' def do(self): # 这是你的任务逻辑,可以在这里执行任何操作 # 例如,发送邮件或者清理数据库等操作 print("执行定时任务") ``` 在这个例子中,do()方法定义了实际的任务逻辑,我们在这里打印了一条消息。你可以根据实际需求在这里执行任何操作。 最后,在项目的根目录下运行命令`python manage.py crontab add`来启用定时任务。这样,定时任务将在每次运行Django项目时自动执行。 以上就是使用django-crontab编一个简单的定时任务的步骤。通过配置CRONJOBS列表和定义任务函数,我们可以轻松地添加和管理定时任务。 ### 回答3: 要使用djangodjango-crontab库编一个简单的定时任务,首先需要按照以下步骤进行设置: 1.将django-crontab库添加到你的django项目中,可以通过在你的项目的requirements.txt文件中添加"django-crontab"来实现。 2.在你的项目的settings.py文件中,将'django_crontab'添加到INSTALLED_APPS列表中。 3.在settings.py文件的最后,添加以下代码: ``` import os from django_crontab import CronTab CRONJOBS = [ ('*/15 * * * *', 'myapp.cron.my_cron_job', '>> /path/to/log/file.log') ] CRONTAB_COMMAND_SUFFIX = '2>&1' # Optional cron = CronTab() for (schedule, command, output) in CRONJOBS: job = cron.new(command=command, comment=command) job.setall(schedule) job.setall(output) cron.write() ``` 以上代码将创建一个定时任务,任务将每15分钟运行一次。"myapp.cron.my_cron_job"是你自己定义的任务函数,你可以在一个名为cron.py的模块中创建这个函数,并在其中定义具体的任务逻辑。 4.运行`python manage.py crontab add`命令,将任务添加到系统的crontab中。 现在,你的简单定时任务已经设置完成。 注意:为了确保定时任务能够正常运行,你的项目需要在一个支持定时任务的环境中运行,例如使用Celery或者是一个具有定时任务功能的主机。并且,要记得在服务器上启动定时任务服务。 希望这能够帮助你编一个简单的定时任务!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值