为啥没有第一天呢?
因为第一天太累了,而且虽然隔离了但白天还要上班。也没有想好要学什么。
因为目前公司的测试平台的框架是django的,所以暂就学习django呗。原始课程是在极客时间上的。
1.建一个django的项目直接在pycharm里面,新建就可以了
2.创建包含用户管理的系统在urls.py中添加 admin
from django.contrib import admin
from django.urls import path
from django.conf.urls import include,url
urlpatterns = [
path('admin/', admin.site.urls)
]
启动django,访问http://127.0.0.1:8000/admin/
创建用户pycharm里面点下面的manage.py
初始化数据库:
先执行makemigrations
再执行migrate
输入:createsuperuser 创建管理员账户 输入用户名密码
用创建好的用户名和密码登录就可以看到管理后台了。
3.创建一个职位管理系统1)创建app startapp jobs
2)创建完app要去项目的settings里面去注册下
3)创建model
blank=True 非空
choices相当于枚举类型
verbose_name 后台显示的名称
ForeignKey 外键 null=True 可以设置为null on_delete=models.SET_NULL 用户删除的时候,这里设置成null,这个是有几种选择的。
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
# Create your models here.
JobTypes =[
(0,"技术类"),
(1,"产品类"),
(2,"运营类"),
(3,"设计类")
]
Citys =[
(0,"北京"),
(1,"上海"),
(2,"深圳")
]
class Job(models.Model):
job_type = models.SmallIntegerField(blank=True,choices=JobTypes,verbose_name="职位类别")
job_name = models.CharField(max_length=250,blank=True,verbose_name="职位名称")
job_city = models.SmallIntegerField(blank=True,choices=Citys,verbose_name="工作地点")
job_reponsibility = models.TextField(max_length=1024,verbose_name="职位职责")
job_requirement = models.TextField(max_length=1024,verbose_name="职位要求")
creator = models.ForeignKey(User,verbose_name="创建人",null=True,on_delete=models.SET_NULL)
create_date = models.DateTimeField(verbose_name="创建日期",auto_now_add=True)
update_date = models.DateTimeField(verbose_name="修改时间",auto_now=True)
4)执行makemigrations 再执行migrate 创建数据库
5)要想让它显示在admin的后台,需要去admin里面去注册一下
通过admin.stie.register(Job)去注册,注册完,就可以在admin后台查看了
JobAdmin是模型的管理类
list_display 管理后台的列表里显示哪些项,不然不显示的
exclude web后台职位详情里面哪些项不显示
save_model 保存模型的干点什么
from django.contrib import admin
from jobs.models import Job
# Register your models here.
#model管理类
class JobAdmin(admin.ModelAdmin):
list_display = ('job_name','job_type','job_city','creator','create_date','update_date')
exclude = ('creator','create_date','update_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)
4.让匿名用户浏览职位列表
1)在jobs 下面新建一个templates的目录
2)创建一个base页面
block这个是预留,给后面继承的页面填充内容
开心果科技的开发职位
{% block content %}
{% endblock %}
3)创建一个职位列表页面
通过 extends 去继承base页面
{% % } 这种里面写语句
{{}} 这种里面写变量
{% extends 'base.html' %}
{% block content %}
终于等到你,加入我们一起奋斗吧!
{% if job_list %}
{% for job in job_list %}
- {{ job.type_name }}{ job.id }}" >{{ job.job_name }}{{ job.city_name }}
{% endfor %}
{% else %}
no jobs are avaliable
{% endif %}
{% endblock %}
4)写视图函数
Job.objects.order_by('job_type') 取值
loader.get_template 加载列表页面
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
from django.http import Http404
from jobs.models import Job
from jobs.models import Citys,JobTypes
# Create your views here.
def joblist(request):
job_list = Job.objects.order_by('job_type')
template = loader.get_template('joblist.html')
context = {'job_list':job_list}
for job in job_list:
job.city_name = Citys[job.job_city][1]
job.type_name = JobTypes[job.job_type][1]
return HttpResponse(template.render(context))
5)在jobs下面新建urls.py
from django.conf.urls import url
from jobs import views
urlpatterns = [
#职位列表
url(r'^joblist/',views.joblist,name='joblist')
]
6)再去项目的urls.py中去注册一下
from django.contrib import admin
from django.urls import path
from django.conf.urls import include,url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^',include('jobs.urls'))
]
5.让匿名用户去浏览详情
1) 创建详情页面
{% extends 'base.html' %}
{% block content %}
返回职位列表
{% if job %}
岗位名称:{{ job.job_name }}
城市:
{{ job.city_name }}
岗位职责:
{{ job.job_reponsibility }}
任职要求:
{{ job.job_requirement}}
{% else %}
职位不存在
{% endif %}
{% endblock %}
2)创建视图函数
带变量的
def detail(request,job_id):
try:
job = Job.objects.get(pk=job_id)
job.city_name = Citys[job.job_city][1]
except Job.DoesNotExist:
raise Http404('job does not exist')
return render(request,'job.html',{'job':job})
3)配置路由
?P
from django.conf.urls import url
from jobs import views
urlpatterns = [
#职位列表
url(r'^joblist/',views.joblist,name='joblist'),
url(r'^job/(?P\d+)/$',views.detail,name='detail')
]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)