使用Django10分钟搭建一个简易的职位信息系统

创建项目

pip install django

使用命令创建项目

django-admin startproject jobs

创建应用

python manage.py startapp job

记得将job添加到settings.py文件中的INSTALLED_APPS
迁移同步数据库,也可以建完model之后同步

python manage.py makemigrations
python manage.py migrate

创建超级用户

python manage.py createsuperuser

创建模型和admin.py

mdoels.py

from django.contrib.auth.models import User
from django.db import models
from datetime import datetime

# Create your models here.
JOB_TYPE = [
    (0, '技术类'),
    (1, '产品类'),
    (2, '测试类'),
    (3, '运维列'),
]

CITIES = [
    (0, '北京'),
    (1, '上海'),
    (2, '广州'),
    (3, '深圳'),
]


class Job(models.Model):
    job_type = models.SmallIntegerField(choices=JOB_TYPE, blank=False, verbose_name="职位类型")
    job_name = models.CharField(max_length=20, blank=False, verbose_name="职位名称")
    job_city = models.SmallIntegerField(choices=CITIES, blank=False, verbose_name="职位地点")
    job_responsibilities = models.TextField(max_length=1024, blank=False, verbose_name="职位职责")
    job_requirement = models.TextField(max_length=1024, blank=False, verbose_name="职位要求")
    creator = models.ForeignKey(User, blank=False, verbose_name="创建者", on_delete=models.CASCADE)
    created_date = models.DateTimeField(verbose_name="创建时间", default=datetime.now)
    modified_date = models.DateTimeField(verbose_name="修改时间", default=datetime.now)

    class Meta:
        db_table = 'job_jobinfo'

admin.py

from django.contrib import admin

# Register your models here.
from job.models import Job


class JobAdmin(admin.ModelAdmin):
    list_display = ['job_name', 'job_type', 'job_city', 'creator', 'created_date', 'modified_date']
    exclude = ['creator', 'created_date', 'modified_date']

    def save_model(self, request, obj, form, change):
        obj.creator = request.user
        super().save_model(request, obj, form, change)


admin.site.register(Job, JobAdmin)

创建url映射

工程里的urls.py

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

urlpatterns = [
    path('job/', include('job.urls', namespace='job'), name='job'),
]
# 注意一下哦  这里include里边的namespace叫做实例命名空间  使用的前提是 在job/urls.py创建  应用命名空间  app_name

app下的job/urls.py

from django.urls import path
from job import views

app_name = 'job'

urlpatterns = [
    path('joblist/', views.jobList, name='joblist'),
    path('jobdetail/<int:job_id>/', views.jobDetail, name='jobdetail'),
]

创建views视图

from django.http import HttpResponse, Http404
from django.shortcuts import render

# Create your views here.
from django.template import loader

from job.models import Job, JOB_TYPE, CITIES


def jobList(request):
    job_list = Job.objects.all().order_by('job_name')
    t = loader.get_template('job/joblist.html')

    for job in job_list:
        job.type_name = JOB_TYPE[job.job_type][1]
        job.city_name = CITIES[job.job_city][1]

    return HttpResponse(t.render({
    
    'job_list': job_list}))


def jobDetail(request, job_id):
    try:
        job = Job.objects.get(pk=job_id)
        job.type_name = JOB_TYPE[job.job_type][1]
        job.city_name = CITIES[job.job_city][1]
    except Job.DoesNotExist:
        raise Http404()
    return render(request, 'job/jobdetail.html', {
    
    'job': job})

创建模板html

job/base.html

<h1>欢迎您访问酱果科技职位信息系统</h1>

{% block content %}
{% endblock %}

<h2>酱果科技官方网站</h2>

job/joblist.html

{% extends 'job/base.html' %}

{% block content %}
    {% if job_list %}
        <div>
            <ul>
                {% for job in job_list %}
                    <li>{
   
   { job.type_name }} <a
                            href="{% url 'job:jobdetail' job.id %}">{
   
   { job.job_name }}</a> {
   
   { job.city_name }}
                    </li>
                {% endfor %}
            </ul>
        </div>
    {% endif %}
{% endblock %}

job/jobdetail.html

{% extends 'job/base.html' %}

{% block content %}
    <div>
        <a href="{% url 'job:joblist' %}">返回职位列表</a>
        <br>
        {% if job %}

            <div>
                <h2>岗位名称:</h2> {
   
   { job.job_name }}
                <h2>城市:</h2> {
   
   { job.city_name }}
            </div>

            <div>
                <h3>岗位职责:</h3>
                <p>{
   
   { job.job_responsibilities }}</p>
            </div>
            <div>
                <h3>岗位要求</h3>
                <p>{
   
   { job.job_requirement }}</p>
            </div>

            <input type="button" value="申请">
        {% else %}
            没有职位信息
        {% endif %}


    </div>
{% endblock %}

展示

列表页
在这里插入图片描述
详情页
在这里插入图片描述
admin后台页面
在这里插入图片描述
添加数据页面
在这里插入图片描述
这里的html页面可能确实很简易,哈哈 ,博主就是为了快,不想写复杂的样式了,有兴趣的童鞋可以美化一下,大家也要把关注点放在使用django框架做一些简单设计上,当然你要有一定的django基础,我可能省去了很多的细节。
谢谢关注点赞,有任何意见或建议,可以留言评论!每天一个小项目,希望能帮助到您@码字人

猜你喜欢

转载自blog.csdn.net/qq_36581961/article/details/112596481