django 是一个重量级的web开发框架。
1、创建django 工程
django-admin startproject tqz_django #创建django项目
cd tqz_django #进入目录
python manage.py startapp user #创建子项目
2、初始化工程
修改settings.py
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
install_app里面加上这个子项目的名称
3、启动项目
python manage.py runserver #默认启动的端口号是8000
python manage.py runserver 8001 #指定端口号
4、写model
写model设计表结构,并执行命令
from django.db import models
class Article(models.Model):
title = models.CharField(verbose_name="文章标题",max_length=50)
desc = models.CharField(verbose_name="文章描述",max_length=100) #255
content = models.TextField(verbose_name="文章内容") #文本类型
img = models.ImageField(verbose_name="文章图片",null=True,blank=True,upload_to='./static') #
show_count = models.IntegerField(verbose_name="查看次数",default=0)
category = models.ForeignKey(Category,on_delete=models.PROTECT,verbose_name="分类")
create_time = models.DateTimeField(verbose_name="创建时间",auto_now_add=True) #
update_time = models.DateTimeField(verbose_name="更新时间",auto_now=True) #
#models.DO_NOTHING 什么也不做
#models.CASCADE 级联
#models.SET_DEFAULT #设置一个默认值
#models.PROTECT 受保护的
def __str__(self):
return self.title
class Meta:
db_table = "article"
verbose_name = "文章"
verbose_name_plural = verbose_name
python manage.py makemigrations #生成表结构
python manage.py migrate #表结构同步到数据库
python manage.py makemigrations tools(tools是指定的app,只执行对应app)
python manage.py migrate tools
5、写views view里面写对应函数和逻辑 ,返回数据和html
from django.shortcuts import render
from . import models
from django.http import HttpResponse
def index(request):
return HttpResponse("welcome to django!")
def html_index(request):
title = "我的博客"
categories = models.Category.objects.all()
articles = models.Article.objects.all()
data= {"title":title,"categories":categories,"articles":articles}
# locals 是取函数内的一个局部变量 放到一个字典里
return render(request,'index.html',data)
# 根据id晒筛选文章
def categories_articales(request):
categories = models.Category.objects.all()
category_id = request.GET.get("id")
articles = models.Article.objects.filter(category_id=category_id)
return render(request,'category.html',locals())
def articles(request,id):
article= models.Article.objects.get(id=id)
return render(request,'detail.html',locals())
6、配置url
from django.contrib import admin
from django.urls import path
from user import views
urlpatterns = [
path('tqz2', views.index),
path('index-html',views.html_index),
path('admin/', admin.site.urls),
path('category',views.categories_articales),
path('article/<int:id>',views.articles)
]
7、设置html模板的目录和静态文件的目录
settings
TEMPLATES 这个里面去配置查找html的目录
STATIC_URL = '/static/'
STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ]
#静态文件的
8、python manage.py createsuperuser #创建admin管理用户
如果忘记python命令,可以用python manage.py -help 查询关键字