python写的网站,应用与web服务器进行通信的接口,实现了这个接口,web服务器才能识别这个网站,web服务器才能给我们提供服务,我们才能访问这个网站
项目根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
安全码——项目要想启动必须得有,自动生成
SECRET_KEY = 'c@j%9-%4w^#%u^
安全警告,不要在实际生产中打开它
如果打开,bug会直接抛给网页前端,实际不能给用户看
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
只允许列表里的地址来访问网站,其他的被屏蔽了
ALLOWED_HOSTS = []
已安装的应用,自己创建应用后,得把应用写在那里面,才能被交互识别
INSTALLED_APPS = [
MIDDLEWARE 中间件,django自带的工具集
url的根文件
ROOT_URLCONF = 'myblog.urls'
TEMPLATES 模板就是一个个html文件
凡是和wsgi相关的先一律不管
图片,js,css文件地址
STATIC_URL = '/static/'
有了它,.py文件就可以直接引用
要把新添加的应用写到INSTALLED_APPS里,应用名不能和python中的模块名称相同
每接收一个请求就要响应,响应什么,怎么响应,都是在views.py中完成的
每一个请求都用一个函数来处理
要处理请求,所以必须要先接收到这个请求,用函数中的参数request接收(也可以起别的名字)
Add a URL to urlpatterns: path(’’, views.home, name=‘home’)
本例:path('index/', bv.index),
views.home响应函数
name=‘home’ URL的名称
url有很多种写法
实战中,不可能把每一个url都写到那个里,所以新建一blog.urls
re_path(r'^$',views.index), #$以什么为结束,约束了一个空字符串
re_path(r'^index/$',views.index), #一定要注意这个/ 很不起眼,很重要
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#把这行改成我们想要用的模板引擎
第一步:new directory
def index(request):
# 把html页面响应给浏览器
#三个参数,请求对象本身,模板文件,(后台传递到前端的数据)
return render(request,'index.html')
#render第三个参数 传递数据到前端,是个字典类型的参数,键:参数名,前端获取到这个参数名,值就是我们要传递的数据
第一个template blog.urls正确写法
urlpatterns = [
path('index/',views.index),
]
myblog.urls正确写法(APP的)
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/',include('blog.urls')),#总路径
]
以当前应用为名
修改前
修改后
还要修改views里的render,编译器自动改了,只不过改的是错的
以创建类的形式来创建数据表
所有对数据库的操作都是对类和类的对象进行的操作,不需要sql来对数据库操作