python搭建网站《二》

承接上一章、说到基本的框架已搭建、接下来是数据库的搭建:

四、创建数据库


python搭建网站《二》


python搭建网站《二》


执行命令:python manage.py migrate 、相当于在数据库创建了表


python搭建网站《二》


五、打开数据库文件、先去网站下载一个可以查看数据库文件的软件:点下方SQLiteStudio

python搭建网站《二》

https://sqlitestudio.pl/


python搭建网站《二》


python搭建网站《二》

python搭建网站《二》


也可以用(Navicat)软件


六、创建修改数据库的common文件、与sales文件一样的、然后要在modelss.py这个文件操作


python搭建网站《二》


输入这几行代码、创建类、继承对应的字段型


python搭建网站《二》


然后还要在setting.py文件中添加这个应用(common)的路径:common.apps.CommonConfig


当然前面还添加了一个sales的应用也是可以添加进去的、只是现在用不上


python搭建网站《二》


python搭建网站《二》


有任何的修改都要去CMD执行命令:python manage.py makemigrations common


这个命令是、如果有更新文件、就刷新这个命令


python搭建网站《二》


这个命令,告诉Django , 去看看common这个app里面的models.py ,我们已经修改了数据定义, 你现在去产生相应的更新脚本。


执行一下,会发现在 common\migrations 目录下面出现了0001_initial.py, 这个脚本就是相应要进行的数据库操作代码。


python搭建网站《二》


然后就是CMD执行:python manage.py migrate


这个命令是去数据库创建表、就是创建上面001这个文件里的name=costomer这个表


如果上面文件添加了某些字段或代码、刷新完了之后、再执行这个命令更新到数据库中


python搭建网站《二》


接下来要给数据库创建超级管理员帐户,进入CMD输入:python manage.py createsuperuser


然后依次输入帐户、邮箱、密码


python搭建网站《二》


然后我们需要修改应用里面的 管理员 配置文件 common/admin.py,注册我们定义的model类。这样Django才会知道


from django.contrib import admin

from .models import Customer

admin.site.register(Customer)


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》

python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


下面这个表中就是我们刚建的超级管理员帐户


python搭建网站《二》


下面再把刚刚建的客户名称那个表体现在网站上,下面这个页面上的是后台管理、但是别人看你们的网站上是views这个文件里的内容、模板


python搭建网站《二》


我们再把之前演示的URLS的路径删了、删了的不用管


python搭建网站《二》


python搭建网站《二》


下面设置第二个路径sales怎么把数据库的字段名、数据体现在网站上


python搭建网站《二》


先在sales文件夹下的views文件写入以下代码:


python搭建网站《二》


from django.shortcuts import render
from django.http import HttpResponse
# 导入 Customer 对象定义
from  common.models import  Customer

def listcustomers(request):
    # 返回一个 QuerySet 对象 ,包含所有的表记录
    # 每条表记录都是是一个dict对象,
    # key 是字段名,value 是 字段值
    qs = Customer.objects.values()

    # 定义返回字符串
    retStr = ''                                           #占位符
    for customer in  qs:
        for name,value in customer.items():               #遍历数据库中customer表中的name(字段名)、value(字段值)这里不是字段的名字
            retStr += f'{name} : {value} | '              #f是format格式化字符串,那后面的|是什么意思呢、是字段的间隔、每次遍历后就会隔开

        # 
表示换行 retStr += '
' #br是html的换行、以html的形式返回 return HttpResponse(retStr) #最后就是定义的retstr值返回到html里


python搭建网站《二》


下面打开网址:


python搭建网站《二》


上面那种显示格式不好看、我们再改一下网页内容的格式、以单元格的形式显示


from django.shortcuts import render
from django.http import HttpResponse
# 导入 Customer 对象定义
from  common.models import  Customer

html_table='''


                                                      


                                              
    
        
        
        %s
        
        
id 姓名 电话号码 地址 QQ
''' #是头部,是html里的表,是换行的意思,' for name,value in customer.items(): tableContent +=f'' tableContent +='' # # 定义返回字符串 # retStr = '' #占位符 # for customer in qs: # for name,value in customer.items(): #遍历数据库中customer表中的name(字段名)、value(字段值)这里不是字段的名字 # retStr += f'{name} : {value} | ' #f是format格式化字符串,那后面的|是什么意思呢、是字段的间隔、每次遍历后就会隔开 # # #
表示换行 # retStr += '
' #
是html的换行、以html的形式返回、+=是复合运算符 return HttpResponse(html_table % tableContent) #最后就是定义的retstr值返回到html里


python搭建网站《二》


python搭建网站《二》


python搭建网站《二》


这样是不是就好看多了


还可以用HTML模板形式来喧染、下面是代码


from django.shortcuts import render
from django.http import HttpResponse
# 导入 Customer 对象定义
from common.models import Customer

# 先定义好HTML模板
html_template = '''






    
        
是表头(也就是字段名),最后%s是什么意思、这个是填充的意思、从数据库填充数据、python最后的代码返回数据填充在这里 def listcustomers(request): # 返回一个 QuerySet 对象 ,包含所有的表记录 # 每条表记录都是是一个dict对象(字典), # key 是字段名,value 是 字段值 qs = Customer.objects.values() ph=request.GET.get('qq',None) #大写的GET代表请求、get小写的方法,如果请求的字段有值就返回值、没有就返回None if ph: qs=qs.filter(qq=ph) #用filter过滤方法、如果ph有查询出来值就返回给qs、然后返回到网页上 tableContent='' for customer in qs: tableContent +='
{value}
{% for customer in customers %} {% for name, value in customer.items %} {% endfor %} {% endfor %}
id 姓名 电话号码 地址
{{ value }}
''' from django.template import engines django_engine = engines['django'] template = django_engine.from_string(html_template) def listcustomers(request): # 返回一个 QuerySet 对象 ,包含所有的表记录 qs = Customer.objects.values() # 检查url中是否有参数phonenumber ph = request.GET.get('phonenumber', None) # 如果有,添加过滤条件 if ph: qs = qs.filter(phonenumber=ph) # 传入渲染模板需要的参数 rendered = template.render({'customers': qs}) return HttpResponse(rendered)


python搭建网站《二》



发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章