[2018-10-29] python开发个人资源共享网--第二天
创建Django目录
startproject my_project
创建APP
startapp my_app
手动创建的文件夹
log 日志
media 用户上传下载
static 静态文件
配置数据库
找到DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdjango',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
Django默认为我们提供了很多功能,但是这些功能的背后需要有一定的数据表来做支撑
生成Django默认的数据表
进入pycharm的Tools--Run manage.py Task...
执行:makemigrations 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动
migrate 生成数据表
运行项目
Run--Debug--选择自己创建的项目
默认访问地址:http://127.0.0.1:8000/
环境测试(留言板功能)
首先将写好的html、css等静态文件放到static文件夹下
配置url
from message.views import get_form
urlpatterns = [
path('admin/', admin.site.urls),
path('form/', get_form),
]
配置view(app下的views.py文件)
def get_form(request):
return render(request, 'message_form.html')
TemplateDoesNotExist
在Django的setting,py文件中有一个TEMPLATES(指明了我们获取模板文件的处理类)
在DIRS指明目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 获取根目录
# 在TEMPLATES中加入
'DIRS': [os.path.join(BASE_DIR, 'templates')],
配置静态路径
在setting.py文件的 STATIC_URL = '/static/' 下面加上
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
项目配置流程
Model设计
新建的Model需要在setting中配置
在 INSTALLED_APPS下加入
'message',
ORM
编写Models.py
class UserMessage(models.Model):
object_id = models.CharField(max_length=50, default="", primary_key=True, verbose_name=u"主键")
name = models.CharField(max_length=20, null=True, blank=True, default="", verbose_name=u"用户名")
email = models.EmailField(verbose_name=u"邮箱")
address = models.CharField(max_length=100, verbose_name=u"联系地址")
message = models.CharField(max_length=500, verbose_name=u"留言信息")
class Meta:
verbose_name = u"用户留言信息"
如果有编码问题请在Model.py文件的上方加上
# _*_ coding:utf-8 _*_
通过Task执行
makemigrations messages
然后会创建一个 0001_initial.py 文件
再执行
migrate message
查询数据库中的记录
views.py
# 查询数据
def get_form(request):
all_message = UserMessage.objects.all()
for message in all_message:
print(message.name)
return render(request, 'message_form.html')
# 插入数据
def get_form(request):
user_message = UserMessage() # 实例化对象
user_message.name = "陈林2"
user_message.email = "1@qq.com"
user_message.address = "广东"
user_message.message = "信息"
user_message.object_id = "2"
user_message.save()
return render(request, 'message_form.html')
form表单内必须加
{% csrf_token %}
接收表单POST过来的数据添加到数据库
# 通过POST接收到的数据添加到数据库
def get_form(request):
if request.method == "POST":
name = request.POST.get('name', '')
email = request.POST.get('email', '')
address = request.POST.get('address', '')
message = request.POST.get('message', '')
user_message = UserMessage() # 实例化对象
user_message.name = name
user_message.email = email
user_message.address = address
user_message.message = message
user_message.object_id = '3'
user_message.save()
return render(request, 'message_form.html')
# 删除数据
def get_form(request):
all_message = UserMessage.objects.filter(name='陈林', address='广州白云')
# all_message.delete()
for message in all_message:
message.delete()
print(message.name)
return render(request, 'message_form.html')