安装Django
基本包
pip3 install Django -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo apt install python3-django
Django的Project结构
django-admin startproject myProject
django-admin startapp myApp
注:目前为止创建了一个文件夹,结构如下
文件名 | 用途 |
---|---|
__init__.py | 空文件,指明该文件夹为python包 |
settings.py | 代表该python包的配置 |
urls.py | 负责映射路线和路径 |
wsgi.py | 网关接口(不必在意) |
运行服务器
python3 manage.py runserver
此时打开http://127.0.0.1:8000可见到网页
修改端口 与IP
python manage.py runserver 8080
Django的两个重要概念
app: 一个Web应用,包含一系列模型,如数据表,视图,模型等
project: 包含一系列的apps与配置
app下的具体结构
django-admin startapp boards
当前文件架构模型
文件名 | 用途 |
---|---|
migrations/ | 保存改变:跟踪models文件,保持数据库与models.py一致 |
admin.py | 内置的在Django app的配置 |
apps | app本身的配置文件 |
models | 我们定义Web实体的地方,models会自动转换为数据表 (database table) |
tests.py | 写单元测试单元 |
views.py | 控制Web应用的请求/回应循环 |
至此:settings.py会自动建立一个apps的配置文件。除了已有的六个之外,我们自行添加 'boards' .
settings.py内部内容增添情况
创建第一个view
1.建立一个视图 views.py
from django.http import HttpResponse
def home(request):
return HttpResponse('Hello, World!')
此时当收到请求,返回Hello,World!
2.告诉Django何时提供这个视图 urls.py
from . import views
urlpatterns = [
path('', views.视图名, name='视图名'),
]
3.project的urls包含app的urls
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
localhost:8000/blog/
可以看见返回结果HelloWorld
参数含义
path() : 有四个参数, route、view
route用正则表达式匹配,view调用特定的视图函数
kwargs(可传参数,如字典)、name(为url取名,任意地方可以引用它)
在Django中使用MySQL数据库
1.安装MySQLdb库
pip install MySQLdb
2.新建项目
django-admin.py startproject myProject
cd myProject
django-admin.py startapp myApp
3.在mysql中创建表
create database myDatabase default charset = utf8
4.修改myProject的settings,尾部添加blog(app)
INSTALLED_APPS内部尾部添加'blog'
修改DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myDatabase',
'USER':'root',
'PASSWORD':'123456',
'HOST':'',
'PORT':'',
}
}
5.在blog的models.py中添加
from django.db import models
class Employee(models.Model):
name=models.CharField(max_length=20)
6.同步数据库
manage.py migrate
7.查看MySQL数据库的表
use myDatabase;
show tables;
网友评论