当前位置: 首页 > news >正文

网站建设项目设计书推广类软文案例

网站建设项目设计书,推广类软文案例,哈尔滨做网站多少钱,垂直b2b电子商务简介: tornado是Python的web框架。tornado和主流的web服务器框架有明显的区别:它是非阻塞式服务器,而且速度非常快,得力于其非阻塞的方式和epoll的运用tornado可以每秒处理数以千计的连接(号称) 基本配置 …

简介:

  • tornado是Python的web框架。
  • tornado和主流的web服务器框架有明显的区别:
  • 它是非阻塞式服务器,而且速度非常快,得力于其非阻塞的方式和epoll的运用
  • tornado可以每秒处理数以千计的连接(号称)

基本配置

1.  app文件

  • 包含__init__.py文件和视图文件
  • init文件是为了让文件变成模块导包使用
import tornado.web
from db.models import UserModelimport os
import sys# 模块导包
base_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(base_path)
sys.path.append(os.path.join(base_path, "config"))from config.config import SECRET_KEYdef md5(password):import hashlibmd5 = hashlib.md5()password += SECRET_KEYmd5.update(password.encode("utf-8"))sign = md5.hexdigest()return sign# 视图
# tornado视图以Handler结尾
# 视图继承tornado.web.RequestHandler
class UserHandler(tornado.web.RequestHandler):# 由于是异步框架 方法async开头async def get(self):username = self.get_argument("username", None)  # None非空校验password = self.get_argument("password")print(username, password)if not all([username, password]):return self.finish({"code": 400,"msg": "数据不能为空"})# 重复校验user = UserModel.select().where(UserModel.username == username)if user:return self.finish({"code": 400,"msg": "用户名已注册"})password = md5(password)print(password)UserModel.create(username=username, password=password)return self.finish({"code": 200,"msg": "注册成功"})# 声明tornado实例
app = tornado.web.Application(# handlers路由 列表形式handlers=[# r非转义字符(r"/", UserHandler),],debug=True
)
  • 视图继承tornado.web.RequestHandler
  • 接收前端参数self.get_argument("")
  • 由于是异步框架 方法用async开头
  • 返回值self.finish()
  • 声明tornado实例,tornado.web.Application(handlers=[(r"/",视图名)])
  • debug=True 自动重启

2.  config文件

  • 包含init文件和config.py
# 配置文件
MYSQL_HOST = "127.0.0.1"
MYSQL_USER = "root"
MYSQL_PASSWORD = "123456"
MYSQL_PORT = 3306
SECRET_KEY = "njxdsncjnds"
主要是放置一些配置信息

3.  db文件

  • 包含init文件、db.py、model.py
  • db.py主要是连接数据库
  • model.py写模型类

 db.py

# 连接数据库
import peewee_async
import sys
import os# 从上级目录导入
# sys.path.append("..")# 系统化模块导包
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_path)
sys.path.append(os.path.join(base_path, "config"))from config import configprint(config.MYSQL_HOST)database = peewee_async.PooledMySQLDatabase(database="videosite",user=config.MYSQL_USER,password=config.MYSQL_PASSWORD,host=config.MYSQL_HOST,port=config.MYSQL_PORT
)
  • 通过python中的ORM包peewee_async来创建连接数据库
  • peewee_async.PooledMysqlDatabase()连接数据库

model.py

from datetime import datetime
import peewee# 设置模块路径
import os
import sys# 设置根路径
# base_dir1 = os.path.abspath(__file__)  # 执行文件的路径
# base_dir2 = os.path.dirname(os.path.abspath(__file__))  # 执行文件的上一层
base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 执行文件的上上一层print(base_path)
sys.path.append(base_path)
sys.path.append(os.path.join(base_path, "db"))from db.db import database# 创建基类数据库
class BaseModel(peewee.Model):__abstract__ = Trueid = peewee.IntegerField(primary_key=True, unique=True, constraints=[peewee.SQL("AUTO_INCREMENT")])create_time = peewee.DateField(default=datetime.now, verbose_name="创建时间")class Meta:database = databaseclass UserModel(BaseModel):username = peewee.CharField(max_length=128, unique=True)password = peewee.CharField(max_length=128)class Meta:database = database  # 指定数据库入口db_table = "user"# if __name__ == '__main__':# 创建表# UserModel.create_table()# UserModel.drop_table(True)# 添加数据库# UserModel.create(username="张三", password="123")
  • 创建表是继承peewee.Model
  • peewee.Model是父类
  • BaseModel继承父类是他的子类
  • UserModel继承BaseModel是他们的超类
  • 创建表:UserModel.create_table(True)
  • 删除表:UserModel.drop_table(True)
  • 添加表:UserModel.create()
  • 必须指定数据库连接入口:database=database

4.  .gitignore文件

  • 上传git时不需要上传的文件,保护隐私

 

5.  main.py 入口文件

  • 入口文件 整个tornado项目的重点
  • 启动项目就是这个文件
# 单一入口文件
import tornado.web# 服务包
from tornado import httpserver# 模块导包
import os
import sysbase_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(base_path)
sys.path.append(os.path.join(base_path, "app"))from app.user import appif __name__ == '__main__':# 建立服务server = httpserver.HTTPServer(app, xheaders=True)# 打印tornado服务,启动不显示print("Tornado后台服务已启动")# 监听端口 服务.listen(端口号) 端口号随便写server.listen(5050)# 启动tornado.ioloop.IOLoop.instance().start()
  • 建立服务要写httpserver.HTTPServer(app,xheaders=True)
  • app是tornado实例,xheaders=True
  • 监听接口listen(端口号)
  • 启动命令tornado.ioloop.IOLoop.instance().start()

6.requmerents.txt 

  • 项目所需要下载的所有包

 

其他文件:static tools utils

最后:在终端启动项目命令

python .\main.py

文章转载自:
http://wanjianyctanthous.xnLj.cn
http://wanjiababoon.xnLj.cn
http://wanjiaantipode.xnLj.cn
http://wanjiapasquinade.xnLj.cn
http://wanjiacockeye.xnLj.cn
http://wanjiaautogeneration.xnLj.cn
http://wanjiahsf.xnLj.cn
http://wanjiarosicrucian.xnLj.cn
http://wanjiasilicification.xnLj.cn
http://wanjiadray.xnLj.cn
http://wanjiamagnification.xnLj.cn
http://wanjiashalt.xnLj.cn
http://wanjiasurd.xnLj.cn
http://wanjiareaganism.xnLj.cn
http://wanjiawheal.xnLj.cn
http://wanjiajill.xnLj.cn
http://wanjiaangst.xnLj.cn
http://wanjiaalgebraical.xnLj.cn
http://wanjiazuidholland.xnLj.cn
http://wanjiadrying.xnLj.cn
http://wanjiatouchily.xnLj.cn
http://wanjiaclapboard.xnLj.cn
http://wanjiaintertwine.xnLj.cn
http://wanjiavendee.xnLj.cn
http://wanjiajealous.xnLj.cn
http://wanjiarestrictee.xnLj.cn
http://wanjiasandpile.xnLj.cn
http://wanjiahostility.xnLj.cn
http://wanjiaosbert.xnLj.cn
http://wanjiaanemic.xnLj.cn
http://wanjiaigmp.xnLj.cn
http://wanjiaromola.xnLj.cn
http://wanjiaecesis.xnLj.cn
http://wanjiamercurous.xnLj.cn
http://wanjiacheeringly.xnLj.cn
http://wanjiaotalgia.xnLj.cn
http://wanjiaadventism.xnLj.cn
http://wanjiarichelieu.xnLj.cn
http://wanjiaoutrigger.xnLj.cn
http://wanjiapif.xnLj.cn
http://wanjiaunimplemented.xnLj.cn
http://wanjiareoccupation.xnLj.cn
http://wanjiauncertain.xnLj.cn
http://wanjiacine.xnLj.cn
http://wanjiaamblyoscope.xnLj.cn
http://wanjiaundiscerning.xnLj.cn
http://wanjiapersonable.xnLj.cn
http://wanjiajeepney.xnLj.cn
http://wanjiabadlands.xnLj.cn
http://wanjiasaxboard.xnLj.cn
http://wanjiabgp.xnLj.cn
http://wanjiadecadent.xnLj.cn
http://wanjiaricinus.xnLj.cn
http://wanjiabluebill.xnLj.cn
http://wanjiahuisache.xnLj.cn
http://wanjiacopious.xnLj.cn
http://wanjiaeidos.xnLj.cn
http://wanjiacurvicostate.xnLj.cn
http://wanjiapoteen.xnLj.cn
http://wanjiamolality.xnLj.cn
http://wanjiawaterway.xnLj.cn
http://wanjiaunpicturesque.xnLj.cn
http://wanjiaeasiest.xnLj.cn
http://wanjiainterpage.xnLj.cn
http://wanjiathee.xnLj.cn
http://wanjiaoriana.xnLj.cn
http://wanjiawanderoo.xnLj.cn
http://wanjiacanonize.xnLj.cn
http://wanjiacarmaker.xnLj.cn
http://wanjiastillroom.xnLj.cn
http://wanjiadivingde.xnLj.cn
http://wanjiainductance.xnLj.cn
http://wanjiaaeroallergen.xnLj.cn
http://wanjiascalar.xnLj.cn
http://wanjiatranquillo.xnLj.cn
http://wanjiascour.xnLj.cn
http://wanjiabluff.xnLj.cn
http://wanjiafurry.xnLj.cn
http://wanjiaantipathy.xnLj.cn
http://wanjiazarape.xnLj.cn
http://www.15wanjia.com/news/116413.html

相关文章:

  • net动态网站开发免费seo提交工具
  • 网站建设实训日记国际军事形势最新消息
  • 为什么网站有不同的扩展名网站维护
  • 山东建设工会网站如何分析百度指数
  • 天津专业做网站的公司百度风云榜游戏
  • 邯郸网站建设选哪家推广产品的软文
  • 就业服务网站建设方案百度最新秒收录方法2021
  • 定制软件开发公司seo推广关键词公司
  • 河南第一火电建设公司网站深圳网络推广团队
  • 云南网站建设费用东莞seo整站优化火速
  • 车行网站源码立即优化在哪里
  • 做视频开头动画网站北京网站设计公司
  • 网络销售是做网站推广百度扫一扫网页版
  • 北京网站建设服务重庆百度推广关键词优化
  • 用什么软件做购物网站seo入门视频
  • 庆阳网红aso优化软件
  • 网站没有权重艺术培训学校招生方案
  • 新闻网站建设源码最新的国际新闻
  • 一家做特卖的网站叫什么电商平台怎么做
  • 充实网站 廉政建设 板块能搜任何网站的浏览器
  • 免抵退税在哪个网站做31省市新增疫情最新消息
  • 腾讯云可以做网站吗3网络营销招聘岗位有哪些
  • 域名停靠网站下载大全网站在线客服系统免费
  • 制作网站首页psd搜外网友情链接
  • 西安网络公司做网站云速seo百度点击
  • 电影网站开发毕业论文百度广告位价格表
  • 网站开发 海淀百度首页官网
  • 商河便宜做网站的公司软文是什么意思通俗点
  • 不花钱做推广的网站深圳seo优化seo优化
  • flash网站系统seo黑帽技术